1

Process.Startを使用してFortran実行可能ファイルを実行しようとしていますが、機能しません。

Process proc = new Process();
string args = "<C:\\file.in> C:\\file.out";
proc.StartInfo = new ProcessStartInfo(AppName, args);
proc.Start();

これらの引数をコマンドウィンドウに貼り付けると、アプリケーションは期待どおりに実行されます。proc.Start()が期待どおりに実行されません。

Startが実際に引数として渡しているものをどのように表示できるかについてのアイデアはありますか?私の直感は、これは引用の問題だということです。

実行可能ファイルが起動してハングするため、AppNameが正しく渡されていると確信しています。これは、引数の問題のように見えます。

この質問で提案されているように、WorkingDirectoryを入力ファイルと出力ファイルの設定に設定しようとしました:process.start()引数ですが、機能しませんでした。

4

2 に答える 2

1

<およびコマンドライン演算子を使用したリダイレクトは>、コマンドラインプロセッサによって実装される機能です。これはcmd.exeです。/ c引数を使用して、1つのコマンドのみを実行します。

string args = "/c " + AppName + " < C:\\file.in > C:\\file.out";
proc.StartInfo = new ProcessStartInfo("cmd.exe", args);
proc.Start();
于 2012-06-06T00:12:55.497 に答える
0

args文字列は、実行可能ファイルに引数として渡されるものとまったく同じです。ProcessProcessStartInfo.Argumentsプロパティを読み取って再確認できます。

同様のことが一度私に起こりました。つまり、コマンドラインから実行可能ファイルを呼び出すと機能しませんでした。コマンドラインから実行すると、実行可能ファイルがPCの[C:]ドライブで実行されていたことがわかりました。 PCの[E:]ドライブで実行されていたコードから呼び出されました。これはいっぱいでした。

アプリケーションが実行可能ファイルの実行に使用しているディレクトリを確認するには、Directory.GetCurrentDirectoryメソッドを使用します。

于 2012-06-06T01:37:15.210 に答える