|
463) 別CMD.EXE間での環境変数の受け渡し ふぇれ 2004/05/13(木) 14:08 |
|
はじめまして。 別のCMD.EXE上で動作する二つのバッチで環境変数の値を受け渡す事は可能でしょうか? OSはWin2000Proです。 例えば、以下のような感じで。 [A.bat] SET CPFNAME=BBB [B.bat] COPY %1 %CPFNAME% A.batでセットした環境変数をB.batで仕様したいのですが、 A.batでセットした環境変数CPFNAMEはA.batの動作しているCMD.EXE上でしか参照できません。 ためしにCPFNAMEをOSのシステム環境変数やユーザー環境変数に登録してみましたが、 CMD.EXEが立ち上がるたびにリセットされてしまいます。 |
|
465) Re:別CMD.EXE間での環境変数の受け渡し oo 2004/05/14(金) 01:40 |
|
>はじめまして。 >別のCMD.EXE上で動作する二つのバッチで環境変数の値を受け渡す事は可能でしょうか? >OSはWin2000Proです。 >例えば、以下のような感じで。 > >[A.bat] > SET CPFNAME=BBB > >[B.bat] > COPY %1 %CPFNAME% > >A.batでセットした環境変数をB.batで仕様したいのですが、 >A.batでセットした環境変数CPFNAMEはA.batの動作しているCMD.EXE上でしか参照できません。 A.bat から START で起動したCMD.EXE でなら環境変数が引き継がれるのでそこでB.batを動かせばいいですが、きっとそういうんじゃなくて、A.bat実行前に起動した別途起動されたCMD.EXEでB.batを実行するんでしょうね。 その場合、環境変数の引継ぎは不可能なので、ファイル経由でやるしかないと思います。 [A.bat] ECHO SET CPFNAME=BBB>%TEMP%\Z.BAT [B.bat] CALL %TEMP%\Z.BAT DEL %TEMP%\Z.BAT COPY %1 %CPFNAME% もし、B.batを動かすCMD.EXEの起動がA.bat完了後でいいなら、 A.batの中で、レジストリの環境変数が格納されている HKEY_CURRENT_USER\Environment のところに書き込めばその後に起動されたCMD.EXEにはその環境変数が反映されますが、ちょっと大事ですね。 |