Existe uma maneira de enviar e exibir 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
batch
environment-variables
שלומי שטיין
fonte
fonte
PATH
- apenas por exemplo ou por algum motivo. Estou especialmente interessado em empurrar / pop a variável path. Existe algo que fale contra backup / restauraçãoPATH
?Um pouco tarde para a cena, mas aqui vai de qualquer maneira. Abaixo está uma implementação de uma estrutura de dados de pilha nos scripts em lotes do Windows.
Recursos:
Eu uso a pilha nos meus arquivos em lotes para acompanhar as chamadas de sub-rotina. Cada sub-rotina nos meus arquivos em lote começa com Chamada: pressione% 0 , que coloca o nome da sub-rotina atual na pilha e termina com Chamada: Pop .
Alguns podem achar que é um over-kill para execução de scripts em lote, mas eu apreciei o criar e espero que alguém vai encontrar este útil, desfrutar .
Portanto, para enviar todas as variáveis de ambiente por push, você pode chamar: PushAllEnvironmentVariables, para restaurar todas as variáveis de ambiente, você pode chamar: PopAllEnvironmentVariables
fonte
For /f "Tokens=* Delims=" %%a In ('Set') Do Call :Push "%%a"
Para restaurar todas as variáveis de ambiente que você pode usar:For /l %%a In (!$Stack[0]!,-1,1) Do (Set !$Stack[%%a]!)
Atualizei a resposta para incluir duas sub-rotinas que implementam isso.