#navi(コマンド別) #contents //////////////////////////////////////////////////////////////////////////// *カレントディレクトリの局所化 [#a57efde3] setlocal/endlocalの間では、環境変数だけでなくカレントディレクトリも局所化される。つまり、cd や pushd でカレントディレクトリを移動しても、endlocal で setlocal 時点の場所に戻る。 //////////////////////////////////////////////////////////////////////////// *環境変数値の外への持ち出し [#qdd579c7] setlocal/endlocalの外へ内部の環境変数の値を持ち出したいケースがある。 この場合、 set A=XYZ set B=PQR setlocal set A=123 set B=456 ..... endlocal&set A=%A% echo %A% %B% → 123 PQR のように、endlocalとsetをマルチステートメント化する事で実現できる。 %による環境変数の展開は、構文解析に先立って行われるため、まず展開が行われ、 次にマルチステートメントが認識され、次にendlocalが実行されるがその時点ではすでに set の右辺は展開済みであるので、set では endlocal 実行前の環境変数の値がセットされることになる。 //////////////////////////////////////////////////////////////////////////// #navi(コマンド別)