2014-11-09 21 views
3

什麼我:C#的Process.Start:空白不工作,即使引用

Process.Start("cmd.exe", "/K \"C:/Program Files/nodejs/node.exe\" \"C:/rc/rainingchain/app.js\"");

即使我包文件名以逃脫」,它仍然顯示錯誤:

'C:/Program' is not recognized as an internal or external command, operable program or batch file.

有什麼問題?

回答

5

您需要使用兩個「for程序路徑中的空格:

Process.Start("cmd.exe", "/K \"\"C:/Program Files/nodejs/node.exe\" \"C:/rc/rainingchain/app.js\"\""); 
4

你的代碼將被轉換爲

cmd.exe /K "C:/Program Files/nodejs/node.exe" "C:/rc/rainingchain/app.js"

的cmd.exe將它翻譯成

C:/Program Files/nodejs/node.exe" "C:/rc/rainingchain/app.js 這就是爲什麼它抱怨錯誤。

你需要的是再次用雙引號括起整個node.exe命令。

Process.Start("cmd.exe", "/K \"\"C:/Program Files/nodejs/node.exe\" \"C:/rc/rainingchain/app.js\"\"");所以node.exe命令將"C:/Program Files/nodejs/node.exe" "C:/rc/rainingchain/app.js"

BTW,爲什麼不只是node.exe直接調用?

Process.Start("C:/Program Files/nodejs/node.exe", "C:/rc/rainingchain/app.js");

+0

因爲我需要離開通過/ K打開的窗口。 – RainingChain 2014-11-09 08:12:57