4

Мне нужно понять, как переменные Global vs User работают в Windows.

Случай 1: Если одна и та же переменная определена в пользовательском и глобальном разделах, каково поведение? Например, я определил переменную% PATH% в пользовательском и глобальном разделах и вижу только глобальное значение; Есть ли способ «добавить» пользовательский PATH в глобальный PATH?

Случай 2: переменные, определенные в пользовательском разделе, не разрешаются в глобальном разделе. Если я использую команду SET я вижу список всех определенных переменных (пользовательских и глобальных), но «перекрестные ссылки» не разрешаются.

Например

в пользовательском разделе я определяю:

VAR1=test-user 

в глобальном разделе я определяю:

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

с SET вижу:

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

Я на Windows 7 x64 box.

Итак, исходя из приведенных выше тестов, мои выводы таковы:

  • глобальные переменные переопределяют пользовательские переменные (если имя одинаковое, допустимо только глобальное)
  • перекрестные ссылки между пользовательскими и глобальными переменными не допускаются

Я прав?

1 ответ1

5

Ваши выводы не совсем верны, по крайней мере, согласно моим тестам.

  • Пользовательские переменные могут ссылаться на системные (глобальные) переменные.

    Системные переменные не могут ссылаться на пользовательские переменные.

  • Пользовательские переменные будут переопределять системные (глобальные).

    Просто в наборе по умолчанию TEMPTMP) определяются как переменная пользователя как %USERPROFILE%\AppData\Local\Temp и одновременно как системная переменная как C:\Windows\TEMP .

    PATH представляется особым случаем, когда пользовательская переменная PATH (если она определена) всегда добавляется к системной переменной, а не переопределяет ее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .