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


30

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

Answers:


33

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

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

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

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


那么,%windir%在安装后建成了吗?
Amirreza Nasiri 2013年

2
不,在安装过程中,但之后%SystemRoot%。Windows有足够的信息可供设置SystemDriveSystemRoot只要您选择驱动器安装位置(如果您不修改目标,则使用默认值)。它windir在初始化注册表时在安装中稍后设置了几个默认环境变量(包括)。这仅在您修改安装过程时才有意义。
Synetech 2013年

26

On Win 7 %SystemRoot%是一个只读系统变量,%windir%可以更改并默认设置为windir=%SystemRoot%。操作系统依赖于%SystemRoot%。根据维基百科%WinDir%Windows NT之前的日期似乎被取代%SystemRoot%


1

有趣的事实 - (在Windows 10 1809上)%windir%仍然是如此重要,以至于你无法在没有它的情况下运行任何高架...这意味着你不能实际上把它推回去,因为点击环境变量注册表显然需要提升:( ...幸运的是,安全模式允许我恢复该变量并继续使用卡车

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.