【发布时间】:2016-03-23 20:18:55
【问题描述】:
如果我在命令提示符下运行以下命令,它会起作用:
"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";
【问题讨论】:
-
它似乎没有运行。它似乎没有运行?尝试删除隐藏窗口样式并将
/c选项更改为/k选项。我敢打赌,您会在控制台窗口中看到一条错误消息,该消息现在仍然存在。
标签: c# process processstartinfo