2010-04-27 34 views
0

我一直在试图从我们拥有的Powershell构建脚本运行以下命令行;但仍然遇到问题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" 

注意:“Utilities”中的空格是有意的;试图嗅探涉及可执行文件路径中空格的错误。我向你保证,路径确实存在于我的机器上的空间中。

从Powershell调用此命令行的最佳方式是什么?我试过Invoke-Expression,Diagnostic.Process :: Start,&;每种方法都会出现一些不同类型的错误;通常它可以找到可执行文件。任何建设性意见非常感谢。

谢谢。

回答

2

一旦我删除了'连续字符后面的尾部空格,并摆脱了最后一个双引号,它似乎为我工作(在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时,会给它提供一些常见问题的参数问题。