12

コマンドラインプロンプトからこのコマンドを実行しようとしています:

"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);

誰でも動作するように変更する方法を知っていますか? ありがとう。

4

3 に答える 3

11

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-22T22:41:23.763 に答える
4

これを試して:

ProcessStartInfo info = new ProcessStartInfo(@"D:\fiji\fiji.exe",@"-macro D:\fiji\macros\FFTBatch.ijm --headless");
Process process = new Process();
process.StartInfo = info;
process.Start();
于 2014-01-22T22:51:50.563 に答える