【发布时间】:2018-11-02 17:11:02
【问题描述】:
我需要从 C# 执行包含我的自定义 Commandlets(存在于不同程序集中)的 Powershell 脚本。我尝试了以下方法,但它只调用了一次命令行开关,仅此而已,而在脚本中,命令行开关被多次编写。
Get-MyParameter myTasks
Start-Process notepad.exe
Get-MyParameter myTasks
Get-MyParameter myTasks
Get-MyParameter myTasks
而 MyParameter 是用不同的程序集编写的。 试过的代码是:
var powerShellInstance = PowerShell.Create();
powerShellInstance.Runspace = runSpace;
var command = new Command("Import-Module");
command.Parameters.Add("Assembly", Assembly.LoadFrom(@"..\CommandLets\bin\Debug\Commandlets.dll"));
powerShellInstance.Commands.AddCommand(command);
powerShellInstance.Invoke();
powerShellInstance.Commands.Clear();
powerShellInstance.Commands.AddCommand(new Command("Get-MyParameter"));
powerShellInstance.AddScript(psScript);
var result = powerShellInstance.Invoke();
我在这里做错了什么?
【问题讨论】:
标签: c# powershell scripting arguments pipeline