我如何在 Powershell 中运行它?

dca*_*caz 1 powershell

这是在命令提示符下工作的命令。

C:\Temp\Agent.exe CustomerId={9c0-4ab1-123-102423a} ActivationId={9c0-4ab1-123-102423a} WebServiceUri=https://Agent/
Run Code Online (Sandbox Code Playgroud)

这是错误。(我尝试过调用命令和参数,但我认为 { 引起了问题。

错误:Agent.exe:已指定命令参数。

Bil*_*art 6

您当然不需要使用Start-Process(尽管在某些情况下它可能“有效”,但有一些限制)。最简单和最直接的答案是引用参数:

C:\Temp\Agent.exe 'CustomerId={9c0-4ab1-123-102423a}' 'ActivationId={9c0-4ab1-123-102423a}' 'WebServiceUri=https://Agent/'
Run Code Online (Sandbox Code Playgroud)

如果要运行的可执行文件位于包含空格的路径中(或可执行文件名本身包含空格),请引用命令并使用&(call/invocation) 运算符;例如:

& 'C:\Temp Dir\Agent.exe' 'CustomerId={9c0-4ab1-123-102423a}' 'ActivationId={9c0-4ab1-123-102423a}' 'WebServiceUri=https://Agent/'
Run Code Online (Sandbox Code Playgroud)

评论:

  • 如果您需要字符串插值(即,字符串内$variable名称的自动扩展),则使用"而不是'作为您的引号字符。使用'代替"(如在上面的示例中)来防止字符串插值。

  • 在这种情况下需要引用参数,因为{}符号在 PowerShell 中具有特殊含义。