MS-DOS e linha de comando do Windows comando setlocal
O comando setlocal permite que os ambientes locais sejam alterados sem afetar mais nada.
Disponibilidade
Setlocal é um comando interno disponível nos seguintes sistemas operacionais da Microsoft.
- Windows NT
- Windows 2000
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Windows 10
Setlocal syntax
Começa a localização de alterações de ambiente em um arquivo em lote. As alterações de ambiente feitas após a emissão de SETLOCAL são locais para o arquivo em lote. ENDLOCAL deve ser emitido para restaurar as configurações anteriores. Quando o final de um script em lote é alcançado, um ENDLOCAL implícito é executado para todos os comandos SETLOCAL pendentes emitidos por esse script em lote.
SETLOCAL
Se as extensões de comando estiverem ativadas, o SETLOCAL mudará da seguinte forma:
O comando de lote SETLOCAL agora aceita argumentos opcionais:
ATIVAR EXTENSÕES / DISABLEEXTENSIONS |
Ative ou desative as extensões do processador de comando. Consulte CMD para obter detalhes. |
ATIVAR A EXPANSÃO MAIS TARDE / DESATIVAR EXPANSÃO ATRASADA |
Ative ou desative a expansão atrasada da variável de ambiente. Veja SET /? para detalhes. |
Essas modificações duram até o comando ENDLOCAL correspondente, independentemente de suas configurações antes do comando SETLOCAL.
O comando SETLOCAL define o valor ERRORLEVEL se for fornecido um argumento. Será zero se um dos dois argumentos válidos for fornecido e outro caso contrário. Você pode usar isso em scripts em lote para determinar se as extensões estão disponíveis, usando a seguinte técnica:
VERIFY OTHER 2>nul SETLOCAL ENABLEEXTENSIONS IF ERRORLEVEL 1 echo Unable to enable extensions
O exemplo acima funciona porque em versões antigas do CMD.EXE, SETLOCAL NÃO define o valor ERRORLEVEL. O comando VERIFY com um argumento incorreto inicializa o valor ERRORLEVEL com um valor diferente de zero.
Exemplos de locais
SETLOCAL
Executado em um arquivo em lote, o comando setlocal teria todas as alterações de ambiente afetadas apenas no arquivo em lote.
Veja também o exemplo acima da Microsoft mostrado na sintaxe para outras maneiras de usar esse comando.
0 Comments