[英]running dos command line from C#?
我試圖從命令行提示符運行此命令:
"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 = "/C D:\\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"
嘗試這個:
ProcessStartInfo info = new ProcessStartInfo(@"D:\fiji\fiji.exe",@"-macro D:\fiji\macros\FFTBatch.ijm --headless");
Process process = new Process();
process.StartInfo = info;
process.Start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.