Se as extensões de comando estiverem habilitadas, o SETLOCAL será alterado como a seguir: O comando em lotes SETLOCAL agora ...

Se as extensões de comando estiverem habilitadas, o SETLOCAL será alterado como a seguir:

O comando em lotes SETLOCAL agora aceita argumentos opcionais:
        ENABLEEXTENSIONS / DISABLEEXTENSIONS
            habilita ou desabilita as extensões do processador de comandos.
           Esses argumentos têm precedência sobre as opções CMD /E:ON or
           /E:OFF Consulte CMD /? para obter detalhes.
        ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
            habilita ou desabilita a expansão da variável de ambiente
            atrasada. Esses argumentos têm precedência sobre as opções CMD
            /V:ON ou /V:OFF. Consulte CMD /? para obter detalhes.
 Essas modificações duram até o comando ENDLOCAL correspondente,
 independentemente da sua configuração anterior ao comando SETLOCAL.

 O comando SETLOCAL definirá o valor ERRORLEVEL se um argumento
for fornecido.  Ele será zero se um dos dois argumentos válidos
 for  fornecido; caso contrário, será um.  É possível usar esses scripts em
lotes para determinar se as extensões estão disponíveis usando a seguinte
técnica:

    VERIFY OTHER 2>nulo
    SETLOCAL ENABLEEXTENSIONS
    IF ERRORLEVEL 1 echo Não é possível habilitar as extensões

Isso funciona porque nas versões mais antigas do CMD.EXE, SETLOCAL NÃO
 define o valor ERRORLEVEL. O comando VERIFY com um argumento
 incorreto inicializa o valor ERRORLEVEL para um valor diferente de zero.