C#Process.Start:Whitespace甚至没有工作

Rai*_*ain 3 c# cmd

我得到了什么:

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.

怎么了?

Ale*_*bin 5

您需要在程序路径中使用两个"空格:

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


qxg*_*qxg 5

您的代码将被翻译成

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"

顺便说一句,为什么不直接调用 node.exe 呢?

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