バッチスクリプトでグローバル変数を宣言するにはどうすればよいですか?
例:
Test1.bat:
set testvar=C:\Windows
echo %testvar%
これで、このtestvarを他のバッチスクリプト(test2.bat)で使用できるようになります。
Test2.bat:
echo %testvar%
ありがとう、よろしく!
バッチスクリプトでグローバル変数を宣言するにはどうすればよいですか?
例:
Test1.bat:
set testvar=C:\Windows
echo %testvar%
これで、このtestvarを他のバッチスクリプト(test2.bat)で使用できるようになります。
Test2.bat:
echo %testvar%
ありがとう、よろしく!
私の知る限り、複数のバッチ スクリプトで 1 つの変数を使用する唯一の方法は、カスタム システム環境変数を作成することです。ここでそれを行う方法の詳細なチュートリアルを見つけることができます:グローバル環境変数
見る
SETX /?
プロンプトから - 変更が cmd.exe の将来のインスタンスのみに適用されるという重要なポイントを観察します - 存在しません
システム環境変数を永続的に設定する。ここを参照してください。
適用対象: Windows Server 2008、Windows Vista
Windows XP の場合、 Windows XP Service Pack 2 サポート ツールをダウンロードしてインストールします。
2 つのバッチ ファイルを同じコマンド プロセスで実行すると、問題なく動作します。
これはtest1.batです
set testvar="test123"
echo In test1.bat
echo %testvar%
これはtest2.batです
echo In test2.bat
echo %testvar%
これは、test1.bat を実行してから test2.bat を実行した場合の出力です。
C:\temp>test1.bat
C:\temp>set testvar="test123"
C:\temp>echo In test1.bat
In test1.bat
C:\temp>echo "test123"
"test123"
C:\temp>test2.bat
C:\temp>echo In test2.bat
In test2.bat
C:\temp>echo "test123"
"test123"
これは、あるバッチを別のバッチから呼び出す場合にも機能します (同じプロセスであるため)。
test1.bat を次のように変更します
set testvar="test123"
echo In test1.bat
echo %testvar%
call test2.bat
出力は次のようになります
C:\temp>test1.bat
C:\temp>set testvar="test123"
C:\temp>echo In test1.bat
In test1.bat
C:\temp>echo "test123"
"test123"
C:\temp>call test2.bat
C:\temp>echo In test2.bat
In test2.bat
C:\temp>echo "test123"
"test123"
さまざまなコマンド プロセスで使用できるようにする場合は、setx を確認するか、システム変数を設定する必要があります。