2015-04-02 78 views
1

我打電話跟下面的配置命令行程序:調用的ProcessStartInfo帶空格的路徑老是打斷

var processStartInfo = new ProcessStartInfo { 
    FileName = mainCommand, 
    UseShellExecute = false, 
    RedirectStandardOutput = true, 
    RedirectStandardError = true, 
    CreateNoWindow = true, 
}; 

,當我與mainCommand運行它是沒有空格它總是一個路徑工作,如果有它失敗的命令路徑上的空間:

Could not find the command file at C:\Users\Some 

凡實際路徑將是:

C:\Users\Some User\AppData\Local\Temp\Process.exe 

那麼,爲什麼它不被轉義,並且有沒有辦法可以避免這個路徑名來防止這個錯誤?

+0

你是在說論據嗎?這個exe在這裏工作正常。 – 2015-04-02 14:21:58

+0

我在說的是程序路徑,在這裏不起作用,總是因爲那個錯誤而失敗。 – 2015-04-02 14:27:01

+0

您可以使用默認的Windows程序進行重現嗎?在這裏不能得到這個失敗。 – 2015-04-02 14:28:14

回答

2

嘗試用引號包裹它:

string targetExe = "\"C:\\this path with spaces\\helloWorld.exe\""; 

它就像這樣,但也不必擔心,因爲帕特里克·霍夫曼說工作。看起來你的系統有些不同。

如果您想要傳遞參數,請在ProcessStartInfo中通過Arguments。顯然,如果它們也有空格(即:/arg1 "An Argument"),您將不得不像上面那樣用引號包裹它們。

相關問題