Definir setx de variável de ambiente

0

Estou definindo uma variável de ambiente com setx (win7) em um cmd, que iniciei a partir de um arquivo em lotes, se eu fechar o shell e abrir um novo a partir do arquivo em lote novamente e usar o comando Set para verificá-lo, não obter essa nova variável. Eu posso ver a variável via windows e regedit, alguém tinha uma idéia do que eu faço de errado?

EG.

Lote:

Rem defina algumas variáveis locais

Defina varableA="teste"

...

Iniciar / B cmd.exe / k

No shell aberto:

Valor da variável Setx -m - > set system envirtomet vartiable

Feche o shell e execute novamente o lote

No novo shell:

Definir var

E thgerre não é variávelB mas no Windows um registro eu posso ver isso

    
por Gasasa 19.09.2013 / 13:37

1 resposta

2

Mesmo se você souber o que você fez de errado. Você ainda deve dizer em sua pergunta. Sua pergunta é mal perguntada porque você está perguntando porque é que o que você fez não funcionou e você não mostrou exatamente o que você fez. Cole os comandos que você fez.

Aqui está como alguém usaria o setx. Isso funciona.

C:\>setx aaa rrr

SUCCESS: Specified value was saved.

Aqui está a prova de que foi definido -

C:\>@REG QUERY "HKCU\Environment"


HKEY_CURRENT_USER\Environment
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    aaa    REG_SZ    rrr

agora, se você definir (o comando para visualizar as variáveis de ambiente), o valor não será exibido. Mas abra uma nova janela cmd e defina, e mostra. Está na seção da variável do usuário. em vez do sistema um.

Para a variável de ambiente do sistema, você precisa de setx aaa 123 -m (ou seja, -m no final) e o local no registro para as variáveis do sistema, em xp ou 7, seria HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment e você precisaria do cmd prompt em administrativo. E cuidado com o caminho que você deve fazer o backup setx pathbk "%path%" -m

Eu recomendo escrever um arquivo de lote para definir permanentemente% uvar% e% mvar% para apontar para os locais de registro para as variáveis de ambiente

set mvar=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

setx mvar "%mvar%"

set uvar=HKCU\Environment

setx uvar "%uvar%"

então você pode fazer

reg query %uvar%

reg query %mvar%

Note-setx pode ser um pouco perigoso, escrever algo que você não pretendia, então defina > a.a primeiro para ter um backup.

relacionado

link

    
por 19.09.2013 / 17:09