Was ist der Unterschied zwischen% WinDir% und% SystemRoot%?

33

Was ist der Unterschied zwischen% Windir% und% Systemroot% im Windows-Pfadverzeichnis?
Beide zeigen den Ordner "Windows".

Amirreza Nasiri
quelle

Antworten:

34

Um auf die Antwort von Herrn Dave einzugehen, %SystemRoot%handelt es sich um eine eingebaute Variable (zusammen mit einer kleinen Handvoll anderer wie %SystemDrive%). Das heißt, es ist nicht tatsächlich im Umgebungsvariablenspeicher unter HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentin der Registrierung definiert.

Andererseits %windir%handelt es sich um eine reguläre Variable, die im Variablenspeicher als definiert ist %SystemRoot%. (Es gibt kein Gegenstück zu "echten Variablen" %SystemDrive%.)

Die Verwendung ist eigentlich egal, aber es kann vorkommen , dass Sie Probleme mit der Variablenerweiterung in Batch-Dateien haben. In diesem Fall können Sie die andere versuchen. (Ich kann mich nicht erinnern, dass ich Probleme damit hatte, aber es lohnt sich, daran zu denken.)

Darüber hinaus werden %SystemRoot%(und %SystemDrive%) während des Installationsvorgangs festgelegt (wenn Sie das Ziellaufwerk auswählen) und sind daher ab dem frühesten Zeitpunkt der Installation von Windows verfügbar, während dies %windir%zu einem späteren Zeitpunkt während der Installation festgelegt wird, wenn Sie also einige erstellen Art der benutzerdefinierten Installation (z. B. OEM, PE usw.), die Sie verwenden möchten %SystemRoot%.

Synetech
quelle
Also,% windir% hat NACH der Installation gebaut?
Amirreza Nasiri
2
Nein, während der Installation, aber danach %SystemRoot%. Windows verfügt über genügend Informationen zum Festlegen SystemDriveund SystemRootsobald Sie das Laufwerk auswählen, auf dem es installiert werden soll (außerdem wird ein Standard verwendet, wenn Sie das Ziel nicht ändern). windirBei der Initialisierung der Registrierung werden später in der Installation mehrere Standardumgebungsvariablen (einschließlich ) festgelegt. Dies ist nur von Bedeutung, wenn Sie den Installationsprozess ändern.
Synetech
in diesem fall könntest du den anderen probieren . Ich nehme an, der andere ist %windir%. Ist das korrekt?
René Nyffenegger
28

Unter Win 7 %SystemRoot%ist eine schreibgeschützte Systemvariable, %windir%die zwar geändert werden kann und standardmäßig als festgelegt ist windir=%SystemRoot%. Das Betriebssystem verlässt sich auf %SystemRoot%. Laut Wikipedia , %WinDir%pre-dates Windows NT und scheint durch abgelöst zu werden %SystemRoot%.

Dave
quelle
1

Tolle Tatsache - (unter Windows 10 1809)% windir% ist immer noch so wichtig, dass Sie nichts Höheres ausführen können, ohne es auszuführen. ... zum Glück konnte ich im abgesicherten Modus diese Variable wiederherstellen und weiterarbeiten

Beej
quelle