C# 不会运行 PowerShell 脚本



我想从我的C#项目中调用PowerShell脚本,但它不起作用。

当我运行代码时,我没有收到任何错误(或者我不知道在哪里可以找到它们(。我还尝试从cmd运行脚本,脚本工作正常。

我的执行策略设置为无限制,所以这不是问题。

我仔细检查了路径,所以这些也不是问题。

C# 代码:

string scriptPath = @"C:UsersjmihaDesktoptest.ps1";
var parameters = new List<String>();
parameters.Add("test");
PowerShell ps = PowerShell.Create();
ps.AddScript(scriptPath);
ps.AddParameters(parameters);
ps.Invoke();

PowerShell 脚本:

param(
    [Parameter(Mandatory = $true)]
    [String]$param
)
Add-Content 'c:usersjmihadesktoptest.txt' $param

当我打开测试时.txt它是空的。

AddScript用于任意代码,而不是命令/参数语法。 你可以使用类似的东西

ps.AddScript("Test-Path C:temp").Invoke()

它有效。

如果要绑定参数等,则需要使用 AddCommand 它允许您与命令进行交互,就像它们的对象一样,并将绑定您的参数:

using (PowerShell powershell = PowerShell.Create())
    powershell
        .AddCommand(@"C:Temptest.ps1")
        .AddParameter("param", "TEST")
        .Invoke()

附言System.Management.Automation.dll的文档很糟糕。

相关内容

  • 没有找到相关文章

最新更新