带有命令参数的ConsoleShell

时间:2013-12-16 15:01:31

标签: powershell

我有一个工具可以使用Microsoft.PowerShell.ConsoleShell.Start()启动PowerShell实例。这非常有效,除了我不能通过将它作为-Command参数传递来运行脚本。

简化代码看起来像这样

string[] psArgs = new[] {"Command", ".\\test.ps1"};

var config = RunspaceConfiguration.Create();
int i= ConsoleShell.Start(
    config,
    "PSPowerShell",
    "",
    psArgs
);

当我使用它时,PowerShell启动,我得到以下输出

CommandType     Name       Definition
-----------     ----       ----------
ExternalScript  test.ps1   E:\testarea\test.ps1

感觉我错过了一些微不足道的东西,但我看不到它......

我也尝试过使用&但这只会给我一个错误:

Ampersand not allowed. The & operator is reserved for future use; use "&" to pass ampersand as a string.

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你告诉它运行命令,但是你给它一个脚本文件。

尝试将第一行更改为:

string[] psArgs = new[] {"-File", ".\\test.ps1"};