Definindo uma variável de ambiente do sistema a partir de um arquivo em lotes do Windows?

É possível definir uma variável de ambiente no nível do sistema a partir de um prompt de comando no Windows 7 (ou mesmo no XP). Estou correndo de um prompt de comando elevado.

Quando eu uso o comando set ( set name=value ), a variável de ambiente parece ser válida apenas para a session do prompt de comando.

   

O XP Support Tools (que pode ser instalado a partir do seu CD XP) vem com um programa chamado setx.exe :

 C:\Program Files\Support Tools>setx /? SETX: This program is used to set values in the environment of the machine or currently logged on user using one of three modes. 1) Command Line Mode: setx variable value [-m] Optional Switches: -m Set value in the Machine environment. Default is User. ... For more information and example use: SETX -i 

Eu acho que o Windows 7 realmente vem com o setx como parte de uma instalação padrão.

Exemplo simples de como configurar o JAVA_HOME com o setx.exe na linha de comando:

 setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04" 

Isso definirá a variável de ambiente “JAVA_HOME” para o usuário atual. Se você quiser definir uma variável para todos os usuários, use a opção “-m”. Aqui está um exemplo:

 setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04" 

Nota : você tem que executar este comando como administrador.

Nota : Certifique-se de executar o comando setx a partir de uma janela Admin de linha de comandos

Se você definir uma variável via SETX, não poderá usar essa variável ou suas alterações imediatamente. Você precisa reiniciar os processos que deseja usá-lo.

Use a seguinte sequência para configurá-la diretamente no processo de configuração também (funciona perfeitamente em scripts que fazem algum tipo de boot depois de configurar variables ​​globais) :

 SET XYZ=test SETX XYZ test 

Para o XP, eu usei uma ferramenta (livre / donateware) chamada “RAPIDEE” (Rapid Environment Editor), mas o SETX é definitivamente suficiente para o Win 7 (eu não sabia disso antes).

Apenas no caso de você precisar excluir uma variável, você pode usar SETENV de Vincent Fatica disponível em http://barnyard.syr.edu/~vefatica . Não é exatamente recente (’98), mas ainda funciona no Windows 7 x64.

Variáveis ​​do sistema podem ser definidas através do CMD e do registro Por ex. reg consulta “HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ gerenciador de session \ Environment” / v PATH

Todos os códigos CMD e variables ​​de sistema comumente usados ​​são fornecidos aqui: Defina as variables ​​de ambiente do sistema Windows usando CMD .

Abra o CMD e digite Set

Você obterá todos os valores da variável do sistema.

Digite set java para conhecer os detalhes do caminho do java instalado no sistema operacional da janela.