Почему команда set отображает больше переменных среды, чем графический интерфейс переменных среды?

Почему команда set отображает больше переменных среды, чем графический интерфейс переменных среды?

Когда я запускаю setкоманду в командной строке, первая переменная, которую я вижу, это

введите описание изображения здесь

Но когда я открываю графический интерфейс переменных среды, я не вижуALLUSERSPROFILE

введите описание изображения здесь

введите описание изображения здесь

Почему так? Есть множество других переменных, перечисленных в, setкоторые также не отображаются в GUI. Разве они не должны показывать одну и ту же информацию?

решение1

После небольшого количества проб и ошибок я обнаружил, что эти переменные среды являются дополнительными, о которых сообщает SETмоя система Windows 8.1:

ALLUSERSPROFILE
APPDATA
COMPUTERNAME
CommonProgramFiles
CommonProgramFiles(x86)
CommonProgramW6432
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
PROMPT
PUBLIC
ProgramData
ProgramFiles
ProgramFiles(x86)
ProgramW6432
SESSIONNAME
SystemDrive
SystemRoot
USERDOMAIN
USERDOMAIN_ROAMINGPROFILE

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

Я знаю это HOMEDRIVE, HOMEPATHи HOMESHAREяобновляется автоматическиотэтот пост на форуме TechNet.

Я попробовал навсегда изменить PROMPTпеременную на что-то другое, нежели $P$G(что является значением по умолчанию) SETXи заметил, что это создало новую PROMPTпеременную среды вПользовательские переменные для <имя пользователя> раздел в графическом интерфейсе «Переменные среды».

При удалении этой переменной мой запрос был сброшен обратно на $P$G. Я заметил такое же поведение с COMPUTERNAMEпеременной окружения. То же самое касается:

CommonProgramFiles
CommonProgramW6432
PROCESSOR_ARCHITECTURE
ProgramFiles
ProgramW6432

как объяснено в этомСтатья MSDN о деталях реализации WOW64.

решение2

В соответствии сSS64.com(раздел Autoexec.bat), эти переменные могут бытьвремя загрузкипеременные, которые "не доступны для 32-битных программ с графическим интерфейсом". Начиная с Windows XP, переменные среды загрузки должны быть установлены в реестре в:
HKEY_CURRENT_USER\Environment (переменные среды USER)или:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment(переменные среды SYSTEM)
как показано вБаза знаний Microsoft

Связанный контент