我正在尝试调用Powershell文件中的一个函数,如下所示:
我遇到了以下异常:
在PowerShell中,'BatAvg'不被识别为命令、函数、脚本文件或可执行程序的名称。
我做错了什么?我承认,我对PowerShell知之甚少。
string script = System.IO.File.ReadAllText(@"C:\Users\Bob\Desktop\CallPS.ps1");
using (Runspace runspace = RunspaceFactory.CreateRunspace())
{
runspace.Open();
using (Pipeline pipeline = runspace.CreatePipeline(script))
{
Command c = new Command("BatAvg",false);
c.Parameters.Add("Name", "John");
c.Parameters.Add("Runs", "6996");
c.Parameters.Add("Outs", "70");
pipeline.Commands.Add(c);
Collection<PSObject> results = pipeline.Invoke();
foreach (PSObject obj in results)
{
// do somethingConsole.WriteLine(obj.ToString());
}
}
}
这个PowerShell函数在CallPS.ps1中:
Function BatAvg
{
param ($Name, $Runs, $Outs)
$Avg = [int]($Runs / $Outs*100)/100
Write-Output "$Name's Average = $Avg, $Runs, $Outs "
}
我遇到了以下异常:
在PowerShell中,'BatAvg'不被识别为命令、函数、脚本文件或可执行程序的名称。
我做错了什么?我承认,我对PowerShell知之甚少。