setlocalコマンド
setlocalはendlocalまたはexitが呼ばれるまで有効です。
@echo off set /a n = 1 setlocal set /a n = 2 setlocal set /a n = 3 echo %n% endlocal echo %n% endlocal echo %n%
3 2 1
気をつけなければいけないのは、setlocalは関数を呼んだ先でも有効ということです。
@echo off set /a n = 2 setlocal call :f echo %n% endlocal echo %n% exit /b 0 :f rem // ここでセットしてもsetlocalが有効 set /a n = 1 exit /b 0
1 2