gpt4 book ai didi

c# - 将 PowerShell 参数传递给 Process.Start

转载 作者:太空狗 更新时间:2023-10-29 23:19:59 27 4
gpt4 key购买 nike

我正在尝试将我的一些 bat 脚本转换为 C#。除了 PowerShell 执行行之外,我已经移植了整个程序。

为简单起见,我试图从 cmd 调用 PowerShell 命令。我能够这样做,但它没有采用 PowerShell 命令附带的复杂参数和参数。

如果我直接从 cmd 或 bat 文件运行,这是命令。

powershell -Command "& {asnp 'citrix*'; remove-BrokerTag -Name 'Somename' -Machine 'domain\server' -AdminAddress 'SomeServer';}"

我使用此代码调用 cmd 并运行我的 powershell 命令。

string strCmdText;
strCmdText = "'/C powershell " + "-Command " + "&" + " { asnp 'citrix*'; add - BrokerTag - Name 'Somename' - Machine 'domain\server'" + (listboxvariable) + " - AdminAddress 'ServerXX'; }'" + " & pause";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);

我收到这个错误“由于缺少参数,无法处理命令。命令必须跟在 -Command 之后。”

如您所见,此 PowerShell 命令中有很多参数。

有没有更简单的方法来做到这一点?或者我只是缺少一些简单的东西?

最佳答案

在您原来的 PowerShell 行中,Command 被双引号括起来。

试试这个:

strCmdText = "/C powershell " + "-Command " + "\"& " + "{ asnp 'citrix*'; add - BrokerTag - Name 'Somename' - Machine 'domain\server'" + (listboxvariable) + " - AdminAddress 'ServerXX'; }\"" + " & pause";

请注意使用 \" 转义序列来添加原始命令行中缺少的双引号。

关于c# - 将 PowerShell 参数传递给 Process.Start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52170958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com