如果我在命令提示符下运行以下命令,它可以工作:
"C:\Program Files (x86)\AppFolder\do.exe"
如果我尝试运行与进程相同的东西:
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/c ""C:\Program Files (x86)\AppFolder\do.exe""";
using (Process process = Process.Start(startInfo))
{
...
}
似乎没有运行。如果我查看startInfo.Arguments,它显示如下:
/c \"C:\\Program Files (x86)\\AppFolder\\do.exe\"
我错过了什么?你能不传递带引号或空格的参数吗?我看到很多例子,人们正在传递带有空格/引号的项目,但是跟随它们似乎并不起作用。这是我能想到的最狭窄的例子。
编辑:如果我只是创建一个快捷方式,所以我不使用空格或引号,它可以工作:
startInfo.Arguments = @"/c D:\_test\Do.lnk";
答案 0 :(得分:1)
我不使用'@'。这是正确的实施:
startInfo.Arguments = "/c \"C:\\Program Files (x86)\\AppFolder\\do.exe\"";