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.