下面是在命令提示符中工作的命令。
C:\Temp\Agent.exe CustomerId={9c0-4ab1-123-102423a} ActivationId={9c0-4ab1-123-102423a} WebServiceUri=https://Agent/这是错误。(我试过调用命令和论点,但我认为{已引起了问题。
错误: Agent.exe:已经指定了命令参数。
发布于 2021-06-28 21:09:15
运行外部程序的正确方法是使用Start-Process。它为您提供了几个附加选项,例如单独的ArgumentList参数、以另一个用户的身份运行或重定向输出:
Start-Process -FilePath 'C:\Temp\Agent.exe' -ArgumentList @(
# Arguments are space-separated when run. You could also just use one big string.
'CustomerId={9c0-4ab1-123-102423a}',
'ActivationId={9c0-4ab1-123-102423a}',
'WebServiceUri=https://Agent/'
)发布于 2021-06-28 21:15:39
您当然不需要使用Start-Process (尽管在某些情况下,它可能“工作”,但有一些限制)。最简单、最直截了当的答案是引用以下论点:
C:\Temp\Agent.exe 'CustomerId={9c0-4ab1-123-102423a}' 'ActivationId={9c0-4ab1-123-102423a}' 'WebServiceUri=https://Agent/'如果要运行的可执行文件位于包含空格(或可执行文件名本身包含空格)的路径中,则引用命令并使用& (调用/调用)操作符;例如:
& 'C:\Temp Dir\Agent.exe' 'CustomerId={9c0-4ab1-123-102423a}' 'ActivationId={9c0-4ab1-123-102423a}' 'WebServiceUri=https://Agent/'备注:
如果需要字符串内插(即在字符串中自动扩展名称),则使用"代替'作为引号。使用'而不是" (如上面的示例所示)来防止字符串"
在这种情况下需要引用
{和}符号在PowerShell.中有特殊的含义。
https://stackoverflow.com/questions/68169630
复制相似问题