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。否则它们基本相同。