setlocal
Inicia a localização de variáveis de ambiente em um arquivo em lote. A localização continua até que um comando endlocal correspondente seja encontrado ou que o fim do arquivo em lote seja atingido.
Sintaxe
setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]
Parâmetros
Parâmetro | Descrição |
---|---|
enableextensions | Habilita as extensões de comando até que o comando endlocal correspondente seja encontrado, independentemente da configuração anterior à execução do comando setlocal. |
disableextensions | Desabilita as extensões de comando até que o comando endlocal correspondente seja encontrado, independentemente da configuração anterior à execução do comando setlocal. |
enabledelayedexpansion | Habilita a expansão da variável de ambiente atrasada até que o comando endlocal correspondente seja encontrado, independentemente da configuração anterior à execução do comando setlocal. |
disabledelayedexpansion | Desabilita a expansão da variável de ambiente atrasada até que o comando endlocal correspondente seja encontrado, independentemente da configuração anterior à execução do comando setlocal. |
/? | Exibe a ajuda no prompt de comando. |
Comentários
Se você usar o setlocal fora de um script ou arquivo em lote, ele não terá efeito.
Use o setlocal para alterar variáveis de ambiente ao executar um arquivo em lote. As alterações de ambiente feitas após a execução do setlocal são locais para o arquivo em lote. O programa Cmd.exe restaura as configurações anteriores quando encontra um comando endlocal ou atinge o fim do arquivo em lotes.
Você pode ter mais de um comando setlocal ou endlocal em um programa em lotes (ou seja, comandos aninhados).
O comando setlocal define a variável ERRORLEVEL. Se você passar {enableextensions | disableextensions} ou {enabledelayedexpansion | disabledelayedexpansion}, a variável ERRORLEVEL será definida como 0 (zero). Caso contrário, ela será definida como 1. Você pode usar essas informações em scripts em lote para determinar se as extensões estão disponíveis, conforme mostrado no exemplo a seguir:
verify other 2>nul setlocal enableextensions if errorlevel 1 echo Unable to enable extensions
Como cmd não define a variável ERRORLEVEL quando as extensões de comando estão desabilitadas, o comando verify inicializa a variável ERRORLEVEL para um valor diferente de zero, quando você a usa com um argumento inválido. Além disso, se você usar o comando setlocal com os argumentos {enableextensions | disableextensions} ou {enabledelayedexpansion | disabledelayedexpansion} e não definir a variável ERRORLEVEL como 1, as extensões de comando não estarão disponíveis.
Exemplos
Para localizar as variáveis de ambiente em um arquivo em lote, siga este script de exemplo:
rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out