2010-04-27 89 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時,會給它提供一些常見問題的參數問題。