从C#运行dos命令行?
我试图从命令行提示符运行此命令:
"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);
任何人都知道如何改变它的工作? 谢谢。
克里斯哈斯指出的方向解决了这个问题。 这并不意味着其他答案不起作用,它只是意味着问题至少可以通过一种方式解决。
在这里,只需在代码中添加"/C "
,它应该工作:
原来不起作用:
string fijiCmdText = "D:\fiji\fiji.exe -macro D:\fiji\macros\FFTBatch.ijm --headless"; System.Diagnostics.Process.Start("cmd.exe", fijiCmdText)
;
当前有效的代码:
string fijiCmdText = "/CD:\fiji\fiji.exe -macro D:\fiji\macros\FFTBatch.ijm --headless"; System.Diagnostics.Process.Start("cmd.exe", fijiCmdText);
以下是Chris Haas提到的参考资料 。 见EDIT3
您不必运行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"
试试这个:
上述就是C#学习教程:从C#运行dos命令行?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
ProcessStartInfo info = new ProcessStartInfo(@"D:fijifiji.exe",@"-macro D:fijimacrosFFTBatch.ijm --headless"); Process process = new Process(); process.StartInfo = info; process.Start();
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1033646.html