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

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

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

答案1

为了扩展戴夫先生的回答%SystemRoot%内置变量(以及少数其他变量,如%SystemDrive%)。也就是说,它实际上并未在HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment注册表中的环境变量存储中定义。

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

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

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

答案2

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

答案3

为了获得最大的批处理兼容性,最好使用 %windir%(即:在虚拟机上的旧 Windows 中运行)。%windir% 也适用于 win 3.11、win95、win95 和 winME。否则它们基本相同。

相关内容