5. říjen 2020 Autor: Tibor
Zahajuje lokalizaci změn systémových proměnných v dávkovém
souboru. Změny systémových proměnných provedené po vykonání
příkazu SETLOCAL jsou místní pro dávkový soubor. Příkazem ENDLOCAL
můžete obnovit předchozí nastavení. Při dosažení konce dávkového
souboru je pro každý zbývající příkaz SETLOCAL použitý v tomto
souboru automaticky proveden příkaz ENDLOCAL.
SETLOCAL
Jsou-li povolena rozšíření příkazů, příkaz SETLOCAL se změní
takto:
Dávkový příkaz SETLOCAL nyní přijímá nepovinné argumenty:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Povolit nebo zakázat rozšíření příkazového procesoru. Tyto
argumenty mají přednost před přepínači CMD /E:ON nebo.
/E:OFF Další informace získáte zadáním příkazu CMD /?.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
Povolit nebo zakázat zpožděné rozvinutí systémových
proměnných. Tyto argumenty mají přednost před
přepínači CMD /V:ON nebo /V:OFF.
Další informace získáte zadáním příkazu CMD /?.
Tyto změny trvají až k odpovídajícímu příkazu ENDLOCAL
bez ohledu na jejich nastavení před příkazem SETLOCAL.
Je-li příkazu SETLOCAL předán argument, nastaví hodnotu proměnné
ERRORLEVEL. Byl-li předán jeden ze dvou platných argumentů, bude
mít tato proměnná hodnotu nula. V ostatních případech nabude
hodnoty jedna. Toho je možné využít v dávkových skriptech a
zjistit, zda jsou rozšíření k dispozici. Použijte tuto
techniku:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Rozšíření nelze povolit
Funguje to, protože ve starších verzích procesoru CMD.EXE příkaz
SETLOCAL NENASTAVUJE hodnotu proměnné ERRORLEVEL. Příkaz VERIFY
s chybným argumentem nastaví proměnnou ERRORLEVEL na nenulovou
hodnotu.