Quero criar um arquivo em lote para alternar rapidamente uma variável PATH para poder trabalhar em um ambiente diferente e depois outro para restaurá-lo. Presumo que isso seria feito por meio setx
de alguma forma de pesquisa e substituição, mas não sei nada sobre arquivos em lote.
Responder1
Embora isso não responda diretamente à sua pergunta, resolve o seu problema e, por esse motivo, achei que vale a pena uma resposta, e não um comentário.
A variável ambiental PATH pode armazenar vários caminhos. A ordem dos caminhos a serem pesquisados é da esquerda para a direita. Isto significa efetivamente que se você adicionar um caminho ao início da variável ambiental PATH, ele será pesquisado primeiro.
Isto elimina a necessidade de substituir um caminho existente, a menos que você precise garantir que o outro caminho seja removido, o que esta solução não fará.
Para adicionar uma pasta ao início do ambiente PATH, use o seguinte código:
set PATH=c:\myfolder;%PATH%
É necessário que ;%PATH% esteja lá, caso contrário você limpará o caminho definido e o substituirá inteiramente apenas por sua própria pasta.
Dado que o comando set foi usado, isso armazenará apenas o caminho da sua sessão atual. Para transferir o caminho para o Ambiente Windows, para que seja lembrado a cada sessão, é necessário executar o seguinte comando:
setx PATH "%PATH%"
Dado que você deseja usá-lo para restaurá-lo mais tarde, aconselho criar 2 arquivos em lote para iniciar o que você deseja usar no caminho diferente, e naquele que usa o caminho alternativo, você começa com o comando SET , e para aquele que usa o real, você não.
Dessa forma, cada vez que você executa o arquivo em lote para o caminho alternativo, esse caminho é adicionado e pesquisado primeiro, para encontrá-lo.
Por último, é possível definir PATH com base em outras variáveis ambientais, o que permite alternar.
Primeiro você precisa criar 2 cópias do Caminho original:
setx PATH_orig "%PATH%"
setx PATH_alt "%PATH%"
Agora edite o PATH_alt da maneira que você normalmente editaria o PATH.
Agora você pode simplesmente alternar usando os seguintes comandos:
:: Restore to original
setx PATH "PATH_orig"
:: Set alternate path
setx PATH "PATH_alt"