В чем разница между пользовательскими и системными переменными?


162

В чем разница между пользовательскими переменными, такими как PATH, TMPи т. Д. И системными переменными?

Я случайно удалил пользовательскую переменную PATH. Что я должен сделать?

Ответы:


130

Щелкните правой кнопкой мыши Мой компьютер и перейдите в Свойства-> Дополнительно-> Переменные среды ...

Что выше, это пользовательские переменные, а ниже системные переменные. Элементы объединяются при создании среды для приложения. Системные переменные являются общими для всех пользователей, но пользовательские переменные предназначены только для вашей учетной записи / профиля.

Если вы удалили системные случайно, откройте редактор реестра, а затем перейдите к HKLM\ControlSet002\Control\Session Manager\Environment(при условии, что текущий набор настроек не установлен ControlSet002 ). Затем найдите Pathзначение и скопируйте данные в Pathзначение HKLM\CurrentControlSet\Control\Session Manager\Environment. Возможно, вам придется перезагрузить компьютер. (Надеюсь, эти резервные копии были не слишком давно, и они содержат информацию, которая вам нужна.)


1
Я удалил пользователей, так это хорошо или плохо, возможно ли восстановить пользователей?
новичок

1
@rookie: Ах ... хорошо, удаление переменных пользователей не совсем так плохо , как правило, но это действительно зависит. Вы можете попробовать Восстановление системы, и это, вероятно, сработает, но лично мне это не нравится из-за других проблем, которые могут возникнуть. Вы можете попробовать пойти HKU\.DEFAULT\Environmentи скопировать все оттуда в HKCU\Environment. Если вам повезет, это все, что вам нужно восстановить; если вам не так повезло, у вас могут быть записи для конкретного пользователя, которые просто невозможно восстановить, и в этом случае вам придется использовать восстановление системы. Надеюсь это поможет.
user541686 19.12.10

Почему системные переменные не имеют процентных знаков, а пользовательские переменные имеют?
Миллемила

80

Переменные среды «оцениваются» (т. Е. Они приписываются) в следующем порядке:

  1. Системные переменные
  2. Переменные, определенные в autoexec.bat
  3. Пользовательские переменные

Каждый процесс имеет блок среды, который содержит набор переменных среды и их значений. Существует два типа переменных среды: пользовательские переменные среды (устанавливаются для каждого пользователя) и системные переменные среды (устанавливаются для всех). Дочерний процесс наследует переменные окружения своего родительского процесса по умолчанию.

Программы, запускаемые командным процессором, наследуют переменные окружения командного процессора.

Переменные среды определяют пути поиска для файлов, каталоги для временных файлов, специфичные для приложения параметры и другую подобную информацию. Система поддерживает блок среды для каждого пользователя и один для компьютера. Блок системной среды представляет переменные среды для всех пользователей конкретного компьютера. Блок среды пользователя представляет переменные среды, которые система поддерживает для этого конкретного пользователя, включая набор системных переменных среды.


5
Означает ли это, что системные переменные переопределяют переменные пользователя, если оба определяют переменные с одинаковыми именами?
Кейси Кубалл

4
Обычно нет , за исключением случаев, когда речь идет о PATH .
Treefish Чжан

37

Системные переменные среды доступны всем пользователям.
Переменные среды пользователя специфичны только для текущего пользователя.


Я удалил его случайно, какие могут быть результаты? Как я могу вернуть его?
новичок

@rookie, в результате программы, работающие с этой переменной среды, могут перестать работать. Что касается возвращения, я не знаю, возможно ли это. Возможно, вам придется выполнить восстановление системы.
Дарин Димитров

1

Просто создайте переменную Path у пользователей. Перейдите к пользовательским переменным, выделите путь, затем новый, введите значение. Посмотрите на другой компьютер с той же версией Windows. Обычно это в Windows 10: путь% USERPROFILE% \ AppData \ Local \ Microsoft \ WindowsApps;


1

Переменная окружения (может получить доступ где угодно / динамический объект) является типом переменной. Они имеют системные переменные типа 2 и переменные среды пользователя.

Системные переменные, имеющие предопределенный тип и структуру. Это используется для системной функции. Значения, созданные системой, сохраняются в системной переменной. Они обычно обозначаются заглавными буквами. Пример: HOME, PATH, USER

Переменные среды пользователя - это переменные, которые определяются пользователем и представлены строчными буквами.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.