setlocalとendlocalの動作説明 †バッチファイルで使用される、setlocalやendlocalの説明を以下に記します。 setlocal, endlocal なし †以下のバッチファイルを作成し、コマンドプロンプトから起動します。 @echo off set A=sakura set B=tsubaki set C=suzuran 上記のバッチファイルを起動してみます。 C:\sakura>echo %A% %B% %C% %A% %B% %C% C:\sakura>nonlocal.bat C:\sakura>echo %A% %B% %C% sakura tsubaki suzuran 上記の通り、バッチファイルを起動した後も、変数にセットした値が有効になっています。 setlocalのみ設定 †以下のようなバッチファイルを作成し実行してみます。 @echo off setlocal set A=sakura set B=tsubaki set C=suzuran echo %A% %B% %C% 上記のバッチファイルを起動してみます。 C:\sakura>setlocal.bat sakura tsubaki suzuran C:\sakura>echo %A% %B% %C% %A% %B% %C% バッチファイル内のみ変数が有効であるのが確認できます。 setlocal & endlocal †以下のようなバッチファイルを作成し実行してみます。 @echo off setlocal set A=sakura set B=tsubaki set C=suzuran echo %A% %B% %C% endlocal set D=tanpopo 上記のバッチファイルを起動してみます。 C:\sakura>setendlocal.bat sakura tsubaki suzuran C:\sakura>echo %A% %B% %C% %D% %A% %B% %C% tanpopo setlocal & endlocal の使用例 †以下のように呼び出し元 callbat.bat と呼び出し先の arg.bat を用意しました。 @echo off setlocal set A=sakura set B=tsubaki set C=suzuran call arg.bat %A% %B% %C% endlocal call arg.bat %A% %B% %C% @echo off echo Running arg.bat echo %A% %B% %C% callbat.batからarg.batが2度呼びだされます。 C:\sakura>callbat.bat Running arg.bat sakura tsubaki suzuran Running arg.bat ECHO は <OFF> です。 1回目のarg.batの呼び出しは設定した変数が表示されます。 以上、setlocal, endlocalの使用方法でした。 |