В чем разница между% Windir% и% Systemroot% в пути к Windows?
Они оба показывают местоположение папки «Windows».
Чтобы расширить ответ г-на Дейва, %SystemRoot%
это встроенная переменная (наряду с небольшой горсткой других подобных %SystemDrive%
). То есть он фактически не определен в хранилище переменных среды HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
в реестре.
С другой стороны, %windir%
является обычной переменной и определяется в хранилище переменных как %SystemRoot%
. (Не существует аналога «реальной переменной» %SystemDrive%
.)
Какой из них использовать, на самом деле не имеет значения, но вы можете столкнуться с проблемами расширения переменных в пакетных файлах, и в этом случае вы можете попробовать другой. (Я не помню, чтобы у меня были проблемы с этим, но об этом стоит помнить.)
Кроме того, %SystemRoot%
(и %SystemDrive%
) задаются в процессе установки (при выборе целевого диска) и, таким образом, доступны с самой ранней точки при установке Windows, тогда как %windir%
при установке они устанавливаются позже, поэтому, если вы создаете некоторые вид пользовательской установки (например, OEM, PE и т. д.), которую вы захотите использовать %SystemRoot%
.
%SystemRoot%
. Windows имеет достаточно информации для установкиSystemDrive
и,SystemRoot
как только вы выбираете диск, на который ее установите (плюс она использует значение по умолчанию, если вы не изменяете место назначения). Он устанавливает несколько переменных среды по умолчанию (включаяwindir
) позже в процессе установки, когда инициализирует реестр. Это имеет значение, только если вы изменяете процесс установки.%windir%
. Это правильно?На Win 7
%SystemRoot%
системная переменная%windir%
доступна только для чтения, но может быть изменена и по умолчанию установлена какwindir=%SystemRoot%
. ОС опирается на%SystemRoot%
. Согласно Википедии ,%WinDir%
Windows предшествует Windows NT и, похоже, заменена%SystemRoot%
.источник
забавный факт - (в Windows 10 1809)% windir% по-прежнему настолько важен, что вы не можете запустить что-либо с повышенными правами без этого ... что означает, что вы НЕ МОЖЕТЕ НАСТОЯЩИМ ОСТАВИТЬСЯ, потому что попадание в реестр переменных среды, очевидно, требует повышения :( ... к счастью, безопасный режим позволил мне восстановить эту переменную и продолжить работу
источник