Atualizar variável de ambiente

10

Como posso atualizar um shell do Windows cmd depois de modificar minhas variáveis de ambiente?

i.e. no bash eu posso fazer "source ~ / .bashrc"

    
por portoalet 12.04.2010 / 11:20

3 respostas

2

Depende realmente de como suas variáveis de ambiente foram definidas. Se, por exemplo, você usou o comando "SET" na linha de comando, isso afeta apenas a instância atual. Por outro lado, comandos como "SETX" ajustam permanentemente o valor da variável de ambiente. O SETX garantirá que todas as instâncias futuras do cmd verão a atualização. Não afetará o ambiente local.

Se a variável de ambiente for definida por outro aplicativo e não estiver sendo atualizada, geralmente será mais fácil reiniciar o processo "explorer.exe", efetuar logout e login ou reinicializar. , você só precisa dizer ao explorador para recarregar as variáveis de ambiente. Se for um aplicativo que você desenvolveu, como um instalador, assegure-se de que esteja chamando SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment"); . Isso informa ao explorador para atualizar seu cache das variáveis de ambiente.

Isso é importante porque os aplicativos iniciados por outro processo herdam suas variáveis de ambiente de seus pais. Dessa forma, se você iniciar o cmd a partir do explorer, você verá as variáveis conforme o explorador as vê.

    
por 18.08.2014 / 01:14
1

Configurar e retribuir o ambiente mestre no Windows é algo em que o pessoal do BartPE passou muito tempo.

O ambiente principal é armazenado no registro, mas o shell do explorador lê isso em seu endereço. A partir daqui, ele é enviado para cada sessão do cmd.exe.

SET afeta somente o ambiente cmd. O SETX permite que você altere o ambiente mestre, mas a configuração não é refletida no ambiente local.

O CONSET e o 4NT de Frank Westlake podem buscar entradas do registro, mas nenhum switch para o ambiente mestre em particular.

As janelas carregadas normalmente controlam as configurações do registro, enquanto a janela carregada pelo minint (ou seja, o WinPE) não. Portanto, configurar o registro e ler o registro funciona em ambos, mas apenas as janelas normalmente inicializadas verão as configurações e as passarão para um novo programa cmd, exe.

    
por 20.06.2014 / 08:09
0

que depende de onde você "define" suas variáveis de ambiente. o equivalente ao seu exemplo bash seria assim:

arquivo: env.bat

set FOO=bar

e agora você atualiza

% call env.bat

mas acho que você fez isso através do diálogo windows-system-settings-(ou seja qual for o nome dele). O resultado disso é que você realmente alterou o registro. essas configurações do registro são mapeadas no processo quando você inicia um novo processo.

Então, você pode iniciar um novo processo (cmd.exe no seu caso) OU você pode ler as chaves do registro refletindo as alterações desejadas. você também pode escrever um pequeno script .bat / .cmd, que obtém o ambiente do registro e altera o ambiente atual de acordo com ele (se o clima me ocorrer, eu farei isso depois do almoço).

    
por 12.04.2010 / 11:56