Variáveis globais de ambiente do Windows para usuário

4

Eu preciso entender como as variáveis globais x usuário funcionam nas janelas.

Caso 1: Se a mesma variável é definida na seção usuário e global , qual é o comportamento? Por exemplo. Eu defini uma variável% PATH% nas seções usuário e global e vejo apenas o valor global ; existe uma maneira de 'anexar' o PATH usuário ao global PATH?

Caso 2: As variáveis definidas na seção usuário não são 'resolvidas' na seção global . Se eu usar o comando SET , vejo uma lista de todas as variáveis definidas ( usuário e global ), mas as 'referências cruzadas' não são resolvidas.

Por exemplo,

na seção do usuário eu defino:

VAR1=test-user 

na seção global eu defino:

VAR2=%VAR1%-more;%VAR3%-more
VAR3=test-global 

com SET eu vejo:

...
VAR1=test-user
VAR2=%VAR1%-more;test-global-more
VAR3=test-global
...

Estou em uma caixa do Windows 7 x64.

Então, com base nos testes acima, minhas conclusões são:

  • variáveis globais substituem variáveis do usuário (se o nome for o mesmo, somente global é válido)
  • nenhuma referência cruzada é admitida entre variáveis globais e de usuário

Estou certo?

    
por Andrea Colleoni 07.08.2012 / 11:59

1 resposta

5

Suas conclusões não estão certas, pelo menos de acordo com meus testes.

  • As variáveis do usuário podem fazer referência ao sistema (global).

    As variáveis do sistema não podem fazer referência a variáveis do usuário.

  • As variáveis do usuário substituirão as do sistema (globais).

    Apenas no conjunto padrão, TEMP (e TMP ) são definidos como a variável do usuário como %USERPROFILE%\AppData\Local\Temp e ao mesmo tempo que a variável do sistema como C:\Windows\TEMP .

    PATH parece ser um caso especial, onde a variável do usuário PATH (se definida) é sempre anexada à variável do sistema, em vez de substituí-la.

por 07.08.2012 / 12:23