Definindo ou modificando uma variável de ambiente (em todo o sistema) em cmd.exe

13

Estou procurando uma maneira conveniente de adicionar e / ou modificar e / ou excluir uma variável de ambiente da linha de comando. Particularmente, encontro-me às vezes em situações em que tenho que adicionar algumas variáveis no cmd.exe.

Eu ficaria grato se alguém me mostrasse uma maneira não gráfica de modificar (isto é: adicionar um novo diretório) à variável %PATH% .

A alteração deve ser permanente, não apenas para a duração da sessão cmd .

    
por René Nyffenegger 04.11.2009 / 21:10

8 respostas

7

O método Old School de manipular diretamente variáveis de registro com o comando reg estava no dinheiro. Veja como você faz isso:

reg add HKCU\Environment /v PATH /d "%addonpath%;%path%" /f

Jogue isso em um script de uma linha chamado apath.bat que se parece com isso:

@echo off
reg add HKCU\Environment /v PATH /d "%~dp0;%path%" /f

Então, tudo que você precisa fornecer é o caminho do novo diretório que você está adicionando ao chamar o script e você está 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 que é projetado para nos permitir a propagação de variáveis de ambiente sem o risco de manipular diretamente o registro com o comando reg que poderia salvar sua máquina se você manipula variáveis ENV o suficiente para usá-lo em tempo real.

    
por 04.10.2010 / 14:40
14

Você pode usar o setx.

Variável de usuário:

SETX PATH "%PATH%;C:\MyDir"

Variável do sistema:

SETX PATH "%PATH%;C:\MyDir" /M
    
por 04.11.2009 / 21:33
1

Você pode usar a chave de registro HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun para apontar um arquivo de lote, para permitir que você faça alterações semipermanentes sem investigar diálogos de configurações arcanas.

    
por 04.11.2009 / 21:36
1

Se você não quiser usar a GUI (como no Painel de Controle, Sistema, Avançado, Variáveis de Ambiente, PATH), você provavelmente pode usar REG para definir HKCU\Environment\PATH .

  • atualizar %PATH%
  • REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f

O /f força a substituição do valor existente para que você não precise responder à pergunta de forma interativa.

Editar: %PATH% precisa ser citado.

Editar: Também é importante notar que isso provavelmente requer uma reinicialização ou um novo login antes de entrar em vigor. Ao alterá-lo na GUI entrará em vigor imediatamente (para novas cmd.exe sessões).

Referência: link

Como indicado na referência, se você quisesse escrever algum código, você poderia enviar WM_SETTINGCHANGE e isso deveria evitar o requisito de login / logout.

    
por 04.11.2009 / 22:10
0

É fácil alterar o caminho no processo cmd.exe atual:

PATH c:\MyNewDirectory;%PATH%

Você sempre pode fazer o HELP PATH para obter ajuda sobre o comando PATH.

    
por 04.11.2009 / 21:16
0

Para mudanças verdadeiramente permanentes no sistema, você realmente quer 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 lá afetam todo o seu sistema, incluindo programas GUI no shell do Explorer.

Se você precisar apenas dessas alterações no shell cmd.exe , poderá executar um arquivo batch que as define sempre que você iniciar uma janela cmd.exe. A resposta de Phoshi menciona o HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun , 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 o Sysinternals não tenha um utilitário capaz de fazer isso . Talvez outro dos PStools possa fazer isso?

    
por 04.11.2009 / 21:47
0

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 aplicá-lo usando as Preferências de Diretiva de Grupo (a maneira mais simples de usar grandes quantidades de computadores)

    
por 24.02.2011 / 21:45
0

Outro pensamento não mencionado aqui, crie um script autohotkey que iniciará o painel de controle e o inserirá para você. Funciona bem se você já é um usuário do AHK: -)

link

Além disso, sobre a edição do hklm / system / currentcontrolset001 / control / gerenciador de sessão / ambiente: chave de caminho? Mas a mesma chave está em hklm / system / currentcontrolset002 e em hklm / system / currentcontrolset. Parece que isso pode estar correto, por aqui: link

    
por 11.01.2016 / 16:21