1

私は.exeファイルを持っています。実行すると、CSV と .C ファイルのパスを要求されます。私の問題は、Perl を介してその .exe を実行し、.C ファイルのパスと CSV ファイルのパスを自動的に提供する必要があることです。どうやってやるの?それはopenコマンドを介したgui .exeであり、cファイルとCSVのパスを参照して指定できます。何を言おうとしているのかが明確であることを願っています...

スナップショットへのリンク

このスナップ ショットを実行すると、私の .exe 形式を理解できます。その中に2つのラジオボタンがあり、ラジオボタンBを選択して実行ボタンを押す必要があります。誰かが perl を自動的に処理する方法を教えてくれたら、彼らに脱帽です、どうもありがとう。「Windows XP を使用しています

4

4 に答える 4

4

あなたが提供した情報を使用して、 IPC-RunまたはおそらくExpect CPAN モジュールを試すことができると思います。これらを使用すると、Perl 内から外部コンソール プログラムを制御し、そこから STDOUT/STDERR/STDIN 情報を渡したり読み取ったりすることができます。

于 2010-01-04T16:36:53.023 に答える
2

アプリケーションを実行するだけの場合は、system関数を使用します。あなたが言うように、.exe私は Windows を想定しているので、Perl は次のようになります。

$exitcode = system("c:\\Path\\App\\bin\\application.exe","C:\\dir\\file.csv");

これは、推奨される呼び出し方法を使用しsystemて、配列を渡します。最初のエントリは実行するコマンドであり、他のエントリは各コマンド ライン引数です。単一の空白で区切られた文字列を渡すことができますが、配列メソッドの方が安全です。

コマンドの出力をキャプチャする場合は、backticks を使用します。その場合は、ファイル パスを引用符で囲むのが最も安全です。

$output = `"c:\\Path\\App\\bin\\application.exe" "C:\\dir\\file.csv"`;
print $output;
于 2010-01-04T09:33:24.333 に答える