Questão Definindo e obtendo variáveis ​​de ambiente do Windows a partir do prompt de comando?


Eu quero definir uma variável de ambiente a partir do prompt de comando e, em seguida, ser capaz de acessá-lo globalmente (por exemplo, eu deveria vê-lo indo para o sistema -> variáveis ​​de ambiente).

Quando eu uso o comando set, ele não está acessível em uma nova sessão cmd.

set NEWVAR=SOMETHING
echo %NEWVAR%

Perguntas relacionadas:


182


origem


valor da variável setx - em seguida, reinicie o Prompt de Comando - Andrew


Respostas:


Para tornar a variável de ambiente acessível globalmente, você precisa configurá-la no registro. Como você percebeu, usando apenas:

definir NEWVAR = ALGO

você está apenas configurando-o no espaço de processo atual.

De acordo com esta página você pode usar o setx comando:

setx NEWVAR ALGO

setx está embutido no Windows 7, mas para versões mais antigas só pode estar disponível se você instalar o Windows Resource Kit


196



Acontece que setx também é construído no windows 7. - Shane
Note que você precisa especificar quota, por exemplo: setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_45" vai funcionar. Mas setx JAVA_HOME C:\Program Files\Java\jdk1.7.0_45lhe dará erros de sintaxe - MD. Mohiuddin Ahmed
@ MD.MohiuddinAhmed Isso porque existem espaços no caminho. - ChrisF
Opa! Eu não percebi isso! ... Ainda bom ponto para notar :) Obrigado @ChrisF! - MD. Mohiuddin Ahmed
é uma citação, não cota - phuclv


Também podemos usar "setx var variable / M" para definir o var no nível da variável de ambiente do sistema em vez do nível do usuário.

Nota: Este comando deve ser executado como administrador.


29





setx program "C:\Program Files" /M

/ M para definir o nível de variável de ambiente do sistema em vez do nível do usuário, como @Minh Chau answer

Teste enter image description here

REINICIAR linha de comando (se você não reiniciar a linha de comando, a variável de ambiente não funcionará)

enter image description here


7



Isso duplica outra resposta e não adiciona conteúdo novo. Por favor, não poste uma resposta a menos que você tenha algo novo para contribuir. - DavidPostill♦
@DavidPostill minha resposta tem um novo é que precisamos reiniciar a linha de comando. Eu acho que é importante - Phan Van Linh


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

Todos os códigos CMD e variáveis ​​de sistema comumente usados ​​são fornecidos aqui: Definir variáveis ​​de ambiente do sistema Windows usando o CMD.

Abra o CMD e digite Conjunto

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

Tipo definir java para saber os detalhes do caminho do java instalado em sua janela do sistema operacional.


1



Por favor, leia a pergunta novamente com cuidado. Sua resposta não não responda a pergunta original. - DavidPostill♦
Está perto, no entanto. Usando REG ADD pode conseguir isso? - TOOGAM


Fio velho eu tropecei em cima,

Como mencionado em @ChrisF resposta você pode definir variável usando set ou setx comando.

E para buscar os valores que você pode usar

>set variable_name

E você pode despejar toda a variável ambiental com valores usando o comando set como este, sem dar nenhum parâmetro.

>set

E para desfazer a variável que podemos usar

>set variable_name=

Não dando valor, podemos remover a variável do espaço atual.


1



Isso deveria ser set variable_name= (cuidado com os espaços após os nomes das variáveis). - DavidPostill♦


Eu quero adicionar que se você estiver usando o parâmetro / s com setx para definir variáveis ​​de ambiente em um computador remoto, o serviço "Registro remoto" precisa estar em execução na máquina de destino ou então você receberá um "ERRO: O operação especificada não pôde ser concluída ".

(Eu pedi à Microsoft para atualizar sua Artigo da TechNet sobre o setx para incluir esta informação.)


0