Existe uma maneira de empurrar e estourar todas as variáveis de ambiente em um script em lote?

9

Existe uma maneira de empurrar e estourar todas as variáveis de ambiente em um script em lote? Por exemplo, eu gostaria de fazer algo assim:

pushEnvironmentVariables
call "%VS140COMNTOOLS%\vsvars32.bat"
(do some stuff...)
popEnvironmentVariables
pushEnvironmentVariables
call "%VS90COMNTOOLS%\vsvars32.bat"
(do some other stuff...)
popEnvironmentVariables
    
por שלומי שטיין 26.12.2016 / 14:41

1 resposta

12

Use setlocal, consulte setlocal /? ou ss64.com/nt/setlocal

Setlocal
call "%VS140COMNTOOLS%\vsvars32.bat"
(do some stuff...)
Endlocal
Setlocal
call "%VS90COMNTOOLS%\vsvars32.bat"
(do some other stuff...)
Endlocal

Para salvar o estado atual da variável, você pode fazer

set >MyVarStatus.txt

e restaurar mais tarde com

@Echo off
For /f "tokens=1* delims==" %%A in (
  'findstr /V "^Path" MYVarStatus.txt '
) Do Set %%A=%%B

isso excluiria as variáveis do caminho.

    
por 26.12.2016 / 14:50