setlocal/endlocalコマンドは環境変数のローカル化のためにあります。 ローカル化とはsetlocalからendlocalの範囲内で定義した変数がその中だけ有効でその外部の同名の変数に影響を及ぼさないようにすることです。 @echo off setlocal set a=1 echo %a% endlocal echo %a% goto :EOF を実行すると 1 ECHO は <OFF> です。 となります。 入れ子にもできます。 @echo off setlocal set a=0 setlocal echo %a% set a=1 setlocal echo %a% set a=2 echo %a% endlocal echo %a% endlocal echo %a% endlocal goto :EOF を実行すると 0 1 2 1 0 となります。外側から内側へは同