C#使用转义字符启动命令行

时间:2014-02-05 21:17:10

标签: c# string command-line escaping

以下是C#中作为cmd.exe参数的字符串:

 fijiCmdText = string.Format("/C \"\"{0}\" -macro \"{1}\" \"{2}\"\"", _fijiExeFile, _ijmFile, _inputDir);

其中_fijiExeFile_ijmFile_inputDir来自用户界面。

然而,第三个参数是

C:\Users\my.Unit\Favorites\Downloads\fiji.app (1)\Untitled001"\ 

当它传递给ImageJ宏脚本时,它应该是

 C:\Users\my.Unit\Favorites\Downloads\fiji.app (1)\Untitled001\ 

我想知道无论如何在"之前C:\Users\my.Unit\Favorites\Downloads\fiji.app (1)\Untitled001"\结束时摆脱\?非常感谢。

1 个答案:

答案 0 :(得分:1)

\是字符串的转义字符,因此该字符串:"\""将显示为"

格式中的第三个参数是\"{2}\"\",它将显示为"<value of _inputDir>""

请注意额外的"?这是您需要通过将格式更改为\"{2}\"来删除的内容:

fijiCmdText = string.Format("/C \"\"{0}\" -macro \"{1}\" \"{2}\"", _fijiExeFile, _ijmFile, _inputDir);