Jaka jest różnica między% WinDir% a% SystemRoot%?

33

Jaka jest różnica między% Windir% a% Systemroot% w lokalizacji ścieżki systemu Windows?
Oba pokazują lokalizację folderu „Windows”.

Amirreza Nasiri
źródło

Odpowiedzi:

34

Aby rozwinąć odpowiedź pana Dave'a, %SystemRoot%jest wbudowaną zmienną (wraz z garstką innych podobnych %SystemDrive%). Oznacza to, że tak naprawdę nie jest zdefiniowany w magazynie zmiennych środowiskowych HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentw rejestrze.

Z drugiej strony %windir%jest zmienną regularną i jest zdefiniowana w magazynie zmiennych jako %SystemRoot%. (Nie ma odpowiednika „rzeczywistej zmiennej” %SystemDrive%).

Który do użytku nie ma znaczenia, ale może napotkasz problemy z zmiennej ekspansji okresowy plików, w takim przypadku można spróbować drugiego. (Nie pamiętam, że mam z tym problemy, ale warto o tym pamiętać).

Ponadto %SystemRoot%(i %SystemDrive%) są ustawiane podczas procesu instalacji (po wybraniu dysku docelowego) i dlatego są dostępne od najwcześniejszego momentu instalacji systemu Windows, podczas gdy %windir%są ustawiane w późniejszym czasie podczas instalacji, więc jeśli tworzysz niektóre rodzaj niestandardowej instalacji (np. OEM, PE itp.), której będziesz chciał użyć %SystemRoot%.

Synetech
źródło
Więc% windir% zbudowany PO instalacji?
Amirreza Nasiri
2
Nie, podczas instalacji, ale później %SystemRoot%. System Windows ma wystarczającą ilość informacji do ustawienia, SystemDrivea SystemRootgdy tylko wybierzesz dysk, na którym chcesz go zainstalować (a także użyje wartości domyślnej, jeśli nie zmodyfikujesz miejsca docelowego). windirPodczas inicjowania rejestru ustawia kilka domyślnych zmiennych środowiskowych (w tym ) później w trakcie instalacji. Ma to znaczenie tylko wtedy, gdy modyfikujesz proces instalacji.
Synetech
w takim przypadku możesz spróbować drugiego . Zakładam, że ten drugi jest %windir%. Czy to jest poprawne?
René Nyffenegger
28

W Win 7 %SystemRoot%jest zmienną systemową tylko do odczytu, którą %windir%można zmienić i jest domyślnie ustawiona na windir=%SystemRoot%. System operacyjny polega na %SystemRoot%. Według Wikipedii , %WinDir%pre-dat Windows NT i wydaje się być zastąpione %SystemRoot%.

Dave
źródło
1

fajny fakt - (w systemie Windows 10 1809)% windir% jest nadal tak ważne, że nie można uruchomić niczego podniesionego bez niego ... co oznacza, że ​​NIE MOŻESZ ODSTĄPIĆ OD TYŁU, ponieważ uderzenie w rejestr zmiennych środowiskowych najwyraźniej wymaga podniesienia :( ... na szczęście tryb awaryjny pozwolił mi przywrócić tę zmienną i kontynuować jazdę

Beej
źródło