我一直在尝试从我们拥有的Powershell构建脚本运行以下命令行;但继续遇到问题
& 'C:\Dev\Yadda\trunk\BuildScripts\U tilities\csmanage.exe' `
/create-deployment `
/name:yadddayaddyaddadev `
/label:yadddayaddyaddadev `
/package:https://yadddayaddyadda.blob.core.windows.net/mydeployments/20100426_202848_FamilyMoments.cspkg `
/config:C:\Dev\WalmartOne\trunk\yadddayaddyadda.CloudService\bin\Debug\ServiceConfiguration.cscfg `
/slot:Staging `
/hosted-service:yadddayaddyadda-dev"
注意:“公用事业”中的空格是有意的;试图剔除可执行路径中涉及空格的bug。我向你保证,路径确实存在于我机器上的空间中。
从Powershell调用此命令行的最佳方法是什么?我尝试过Invoke-Expression,Diagnostic.Process :: Start,&amp ;;每种方法都会出现一些不同类型的错误;通常它可以找到可执行文件。非常感谢任何建设性的意见。
感谢。
答案 0 :(得分:2)
一旦我删除了`line continuation characters之后的尾随空格并摆脱了最后一个双引号,它似乎对我有效(在PowerShell 2.0上)。在行继续字符之后注意尾随空格 - PowerShell真的不喜欢这样。请注意,我没有您的实用程序,因此我使用PowerShell Community Extensions中的调试实用程序,它只是将参数回显到屏幕:
PS> C:\Windows\system32>echoargs.exe `
/create-deployment `
/name:yadddayaddyaddadev `
/label:yadddayaddyaddadev `
/package:https://yadddayaddyadda.blob.core.windows.net/mydeployments/20100426_202848_FamilyMoments.cspkg `
/config:C:\Dev\WalmartOne\trunk\yadddayaddyadda.CloudService\bin\Debug\ServiceConfiguration.cscfg `
/slot:Staging `
/hosted-service:yadddayaddyadda-dev
Arg 0 is </create-deployment>
Arg 1 is </name:yadddayaddyaddadev>
Arg 2 is </label:yadddayaddyaddadev>
Arg 3 is </package:https://yadddayaddyadda.blob.core.windows.net/mydeployments/20100426_202848_FamilyMoments.cspkg>
Arg 4 is </config:C:\Dev\WalmartOne\trunk\yadddayaddyadda.CloudService\bin\Debug\ServiceConfiguration.cscfg>
Arg 5 is </slot:Staging>
Arg 6 is </hosted-service:yadddayaddyadda-dev>
请注意,“U tilies”中的空格应该不是问题。您已引用路径并正确使用调用运算符&
。如果删除所有参数,exe是否会调用(即使它只吐出使用情况)?如果确实如此,那么我怀疑在向PowerShell中调用exes时提供参数这是一个常见的问题。