[前の記事]« [NT系]回数を確認しながらコマンドを実行し、成功したらループから抜ける処理
[次の記事]レジストリキーから読み取った値をセットする方法 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SET, PATH, %環境変数%」索引へ

別プロセスで動作するバッチ間で環境変数を受け渡したい


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にはその環境変数が反映されますが、ちょっと大事ですね。
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年05月13日 10:46に投稿されたエントリーのページです。

ひとつ前の投稿は「[NT系]回数を確認しながらコマンドを実行し、成功したらループから抜ける処理」です。

次の投稿は「レジストリキーから読み取った値をセットする方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート