%WinDir% 和 %SystemRoot% 之间有什么区别?

Ami*_*iri 42 windows-7 path

Windows 路径位置中的 %Windir% 和 %Systemroot% 有什么区别?
它们都显示“Windows”文件夹位置。

Syn*_*ech 45

扩展 Dave 先生的答案,%SystemRoot%是一个内置变量(以及一小部分其他变量,如%SystemDrive%)。也就是说,它实际上并未HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment在注册表中的环境变量存储中定义。

另一方面,%windir%是一个常规变量,在变量存储中定义为%SystemRoot%。(没有“真实变量”对应物%SystemDrive%。)

使用哪个并不重要,但您可能会遇到批处理文件中变量扩展的问题,在这种情况下,您可以尝试另一个。(我不记得有这方面的具体问题,但值得记住。)

此外,%SystemRoot%(和%SystemDrive%) 是在安装过程中(当您选择目标驱动器时)设置的,因此从安装 Windows 的最早时间点开始可用,而%windir%在安装过程中的稍后时间点设置,因此如果您正在创建一些某种自定义安装(例如,OEM、PE 等),您将需要使用%SystemRoot%.

  • 不,在安装期间,但在“%SystemRoot%”之后。只要您选择安装它的驱动器,Windows 就有足够的信息来设置“SystemDrive”和“SystemRoot”(另外,如果您不修改目的地,它会使用默认值)。它会在稍后的安装中初始化注册表时设置几个默认的环境变量(包括 `windir`)。这仅在您修改安装过程时才重要。 (2认同)

小智 32

在 Win 7 上%SystemRoot%是只读系统变量,但%windir%可以更改,默认设置为windir=%SystemRoot%. 操作系统依赖于%SystemRoot%. 根据维基百科%WinDir%早于 Windows NT 并且似乎被%SystemRoot%.