我正在尝试从命令行提示符运行此命令:
"D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless"当我在命令行控制台中输入它时,它可以完美地工作。
然而,当我试图让它在C#应用程序中工作时,它失败了。我尝试了一下,但是上面的命令似乎没有被执行:
string fijiCmdText = "D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless";
System.Diagnostics.Process.Start("cmd.exe", fijiCmdText);有没有人知道如何改变它使其工作?谢谢。
发布于 2014-01-23 23:01:48
正如Chris Haas指出的那样,问题已经解决了。这并不意味着其他答案不起作用,它只是意味着问题至少可以通过一种方式解决。
这就是,简单地在代码中添加"/C ",它应该可以工作:
不起作用的原件:
string fijiCmdText = "D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless";
System.Diagnostics.Process.Start("cmd.exe", fijiCmdText);
当前有效的代码:
string fijiCmdText = "/C D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless";
System.Diagnostics.Process.Start("cmd.exe", fijiCmdText);这是Chris Haas提到的reference。请参见EDIT3
发布于 2014-01-23 06:41:24
您不必运行cmd.exe,只需创建ProcessStartInfo对象并将带参数的命令传递给它即可。如下所示:
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("your command", "parameters");下面是一个例子,向你展示了如何做到这一点:
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("tree.com", "/f /a");
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = info;
p.Start();
p.WaitForExit();因此,在您的示例中,命令是:"D:\\fiji\\fiji.exe",命令参数或参数是:@"-macro D:\\fiji\\macros\\FFTBatch.ijm --headless"
发布于 2014-01-23 06:51:51
试试这个:
ProcessStartInfo info = new ProcessStartInfo(@"D:\fiji\fiji.exe",@"-macro D:\fiji\macros\FFTBatch.ijm --headless");
Process process = new Process();
process.StartInfo = info;
process.Start();https://stackoverflow.com/questions/21295494
复制相似问题