What is difference between %Windir% and %Systemroot% in Windows Path Location?
Both of them show "Windows" folder location.
To expand upon Mr. Dave’s answer,
%SystemRoot% is a built-in variable (along with a small handful of others like
%SystemDrive%). That is, it is not actually defined in the environment variable store at
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment in the registry.
On the other hand,
%windir% is a regular variable and is defined in the variable store as
%SystemRoot%. (There is no “real variable” counterpart to
Which to use doesn’t really matter, but you may run into problems with variable expansion in batch-files, in which case you could try the other one. (I don’t recall having problems with this specifically, but it’s worth keeping in mind.)
%SystemDrive%) are set during the installation process (when you choose the destination drive) and is thus available from the earliest point when Windows is being installed whereas
%windir% is set at a later point during the install, so if you are creating some sort of custom installation (e.g., OEM, PE, etc.), you will want to use
On Win 7
%SystemRoot% is a read-only system variable while
%windir% can be changed and is set by default as
windir=%SystemRoot% . The OS relies on
%SystemRoot%. According to Wikipedia,
%WinDir% pre-dates Windows NT and seems to be superseded by
fun fact - (on Windows 10 1809) %windir% is still so essential that you can't run anything elevated without it... which means YOU CAN'T ACTUALLY PUT IT BACK because hitting the environment variable registry apparently requires elevation :( ... fortunately safe mode did allow me to restore that variable and keep on truckin'