バッチファイルで環境変数のローカル化を開始する(SETLOCAL)
バッチファイルで SETLOCAL コマンドを使用すると、環境変数を一時的に変更できます。 ENDLOCAL コマンドを実行するか、バッチファイルが終了すると、変更した環境変数は自動的に元に戻ります。そのため、環境変数を変更してテストを行いたい場合などに便利です。ここでは、バッチファイルで環境変数のローカル化を開始する方法について解説します。
環境変数を一時的に変更する
SETLOCAL コマンドを実行すると、存在するすべての環境変数とその値を保存します。書式は次の通りです。引数なしで実行してください。
SETLOCAL
これ以降、環境変数に対する値を変更しても ENDLOCAL コマンドを実行すると保存されていた値を使ってすべて元通りとなります。
ENDLOCAL
※ なお、SETLOCAL を使用しなくても通常はバッチファイルの終了時に環境変数の変更は元に戻ります。ただし、他のバッチファイルから呼び出された場合などには変更が呼び出し元に影響することがあります。バッチの途中で環境変数を元に戻したい場合や、環境変数の影響範囲を限定するためにも、SETLOCAL を明示的に使用することをおすすめします。
では実際に試してみます。現在環境変数 PUBLIC には C:\Users\Public という値が設定されています。
SETLOCAL コマンドを使って一時的に環境変数 PUBLIC の値を変更し、そのあとで ENDLOCAL コマンドを実行して元に戻してみます。
@echo off echo %PUBLIC% SETLOCAL echo %PUBLIC% set public=C:\temp\Public echo %PUBLIC% ENDLOCAL echo %PUBLIC%
バッチファイルを実行すると、次のように表示されます。
環境変数の値を一時的に変更し、処理後に元に戻すことができました。なお SETLOCAL コマンドを実行すると、その時点の環境変数とその値が内部的に保存されますが、環境変数の値自体が変更されるわけではありません。そのため、SETLOCAL 実行直後に環境変数の値を確認しても、元の値がそのまま表示されます。
-- --
バッチファイルで環境変数のローカル化を開始する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。