Estou procurando uma maneira conveniente de adicionar e / ou modificar e / ou excluir uma variável de ambiente da linha de comando. Particularmente, às vezes me vejo em situações em que preciso adicionar algumas variáveis no cmd.exe.
Ficaria grato se alguém me mostrasse uma maneira não GUI de modificar (ou seja: adicionar um novo diretório) à %PATH%
variável.
A mudança deve ser permanente, não apenas pela duração da cmd
sessão.
command-line
environment-variables
René Nyffenegger
fonte
fonte
Respostas:
O método Old School de manipular diretamente variáveis de registro com o comando reg estava disponível. Aqui está como você faz isso:
Jogue isso em um script de uma linha chamado apath.bat que se parece com isso:
Então, tudo o que você precisa fornecer é o caminho do novo diretório que você está adicionando ao chamar o script e é discado:
por exemplo: apath.bat% addonpath%
Embora Hinch esteja certo. A melhor maneira de fazer isso, se você estiver usando o Vista ou superior, é usar o comando SETX, projetado para permitir a propagação de variáveis de ambiente sem o risco de manipular diretamente o registro com o comando reg que pode salvar sua máquina se você você manipula variáveis ENV o suficiente para usá-lo em tempo real.
fonte
Você poderia usar setx.
Variável de usuário:
Variável do sistema:
fonte
echo %PATH%
, você os vê combinados, como<system path>;<user path>
. Portanto, o primeiro comando fará com que os itens atuais do caminho do sistema apareçam no caminho do usuário (o que não é tão ruim), enquanto o segundo comando fará com que os itens atuais do caminho do usuário apareçam no caminho do sistema (o que é inaceitável).Você pode usar a
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
chave do Registro para apontar para um arquivo em lotes, para permitir alterações semipermanentes sem se aprofundar nas caixas de diálogo de configurações misteriosas.fonte
Se você não quiser usar a GUI (como em Painel de controle, Sistema, Avançado, Variáveis de ambiente, CAMINHO), provavelmente poderá usar
REG
a configuraçãoHKCU\Environment\PATH
.%PATH%
REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f
As
/f
forças sobrescrevem o valor existente para que você não precise responder de maneira interativa à pergunta.Editar:
%PATH%
precisa ser citado.Editar: Também vale a pena notar que isso provavelmente requer uma reinicialização ou login novamente antes que entre em vigor. A alteração na GUI entra em vigor imediatamente (para novas
cmd.exe
sessões).Referência: http://support.microsoft.com/kb/104011
Conforme observado na referência, se você quiser escrever algum código, poderá enviar WM_SETTINGCHANGE e isso deve evitar o requisito de logon / logout.
fonte
REG QUERY HKCU\Environment /v PATH
.É fácil alterar o caminho no processo atual do cmd.exe:
Você sempre pode fazer o HELP PATH para obter ajuda no comando PATH.
fonte
Para alterações verdadeiramente permanentes em todo o sistema, você realmente deseja usar o painel de controle do sistema (também conhecido como Meu computador -> Propriedades -> Avançado -> Variáveis de ambiente, para WinXP). As configurações afetam todo o sistema, incluindo programas GUI no shell do Explorer.
Se você precisar apenas dessas alterações no
cmd.exe
shell, poderá executar um arquivo em lote que as define sempre que iniciar uma janela do cmd.exe. A resposta de Phoshi menciona oHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
, o que parece ser uma excelente opção - fácil de fazer pequenas alterações e executar novamente a partir da linha de comando, se necessário. Mas isso não afetará as janelas da GUI ou o shell do Explorer.Estou realmente surpreso que a Sysinternals não tenha um utilitário capaz para fazer isso. Talvez outro PStools possa fazer isso?
fonte
Muitas maneiras de fazer isso. REG ADD é um ou REG IMPORT (usando um arquivo .REG exportado de outro computador). SETX / M é outro. Você também pode enviá-lo usando as Preferências de Diretiva de Grupo (a maneira mais fácil de usar mãos-livres para um grande número de computadores)
fonte
Outro pensamento não mencionado aqui, crie um script de autohotkey que inicie o painel de controle e o insira para você. Funciona bem se você já é um usuário AHK :-)
https://autohotkey.com/board/topic/63210-modify-system-path-gui/
E quanto à edição da chave hklm / system / currentcontrolset001 / control / session manager / environment: path? Mas a mesma chave está em hklm / system / currentcontrolset002 e hklm / system / currentcontrolset. Parece que isso pode estar correto, por aqui: /programming/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno-setup-install
fonte