Share via


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