2010-12-02 30 views
1

私は、子プロセスを実行するWindowsのcmd.exeスクリプトを持っており、子からの出力を収集して3つの変数を設定する必要があります。子プロセスはいくつかの作業を行い、3つの値を出力します。子プロセスから親cmd.exeシェルに値を渡す方法は?

子供が印刷した値を収集するために親をコードするにはどうすればよいですか?

これを行うために必要な子プロセスの修正はできますが、親スクリプトはcmd.exeバッチファイルとして記述する必要があります。

+0

子プロセスをどのように開始しますか? ** cmd.exe/c **または** cmd.exe/c **を起動するか、child.batを呼び出しますか? – jeb

+0

現在、私は "perl script-name"で起動しますが、それが役立つなら他の方法のいずれかを使うことができます。 – Martin

答えて

2

子プロセスが環境変数を設定しても問題ありませんか?親プロセスがそれを選択できるはずです。

child.bat

set VAR1=123 
set VAR2=321 

parent.bat

echo %VAR1% 
echo %VAR2% 
call child.bat 
echo %VAR1% 
echo %VAR2% 

あなたが使用しているどんな言語子プログラム/スクリプトから環境変数を設定することができます - それから、環境変数を設定する方法があります。

+0

私のために働く!私は子プロセス内から環境変数を設定する方法を知ることができませんでした(それはperlで、%ENVハッシュの更新は親プロセスの変数を更新していませんでした)。代わりに、私は子供に "set var = xxx"コマンドをファイルに出力させ、そのファイルを親からのバッチファイルとして実行しました。 – Martin

0

mr.bからの回答は、両方のバッチスクリプトが同じcmd.exeプロセスで実行されているために発生します。実際、子プロセスは親プロセスの環境変数を記述できませんでした。他のIPCメソッドを試してみてください。

関連する問題