如何在启动新进程时使用空格指定参数

时间:2011-10-19 16:49:06

标签: c# .net parameter-passing

我想使用参数:filename。

运行一个进程
    string parms =  filechooser.Filename ;      
    psi = new ProcessStartInfo("timidity", parms);

当用户选择带有一些空格的文件名时,会出现问题。 我可以用“”?

传递参数

由于

4 个答案:

答案 0 :(得分:4)

您可以将值换成双引号:

string parameters = string.Format("\"{0}\"", filechooser.Filename);
psi = new ProcessStartInfo("timidity", parameters);

答案 1 :(得分:3)

这应该可以正常工作,空间也会通过。

但是,如果你想要转义文件名(取决于正在启动的应用程序,即胆怯),请执行以下操作:

string parms = string.Format("\"{0}\"", filechooser.Filename);
psi = new ProcessStartInfo("timidity", parms);

这将根据格式\"{0}\"创建一个字符串。 \"成为引号("),{0}将替换为格式字符串后面的第一个参数,即文件名。

您可以使用“开始”,“运行”功能或命令提示符(cmd.exe)进行尝试。输入timidity然后输入完整的文件名,用空格,引号,看看是否有效:

timidity "my filename"

答案 2 :(得分:2)

试试这个。

string parms =  filechooser.Filename ;      
psi = new ProcessStartInfo("timidity", "\"" + parms + "\"");

答案 3 :(得分:1)

反斜杠是你的朋友:

"\"timidity\""