Qual è la differenza tra% WinDir% e% SystemRoot%?


33

Qual è la differenza tra% Windir% e% Systemroot% nella posizione del percorso di Windows?
Entrambi mostrano la posizione della cartella "Windows".

Risposte:


34

Espandere la risposta di Dave, %SystemRoot%è una variabile incorporata (insieme a una manciata di altri come %SystemDrive%). Cioè, in realtà non è definito nell'archivio delle variabili di ambiente HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentnel registro.

D'altra parte, %windir%è una variabile regolare ed è definita nell'archivio variabili come %SystemRoot%. (Non esiste una controparte "variabile reale" per %SystemDrive%.)

Quale utilizzare in realtà non importa, ma si può incorrere in problemi con l'espansione delle variabili nel file batch, nel qual caso si potrebbe provare l'altra. (Non ricordo di aver avuto problemi con questo in particolare, ma vale la pena tenere a mente.)

Inoltre, %SystemRoot%(e %SystemDrive%) sono impostati durante il processo di installazione (quando si sceglie l'unità di destinazione) ed è quindi disponibile dal primo momento in cui viene installato Windows mentre %windir%è impostato in un momento successivo durante l'installazione, quindi se si stanno creando alcuni tipo di installazione personalizzata (ad es. OEM, PE, ecc.), che vorrai utilizzare %SystemRoot%.


Quindi,% windir% costruito DOPO l'installazione?
Amirreza Nasiri,

2
No, durante l'installazione, ma dopo %SystemRoot%. Windows ha abbastanza informazioni da impostare SystemDrivee SystemRootnon appena si sceglie l'unità su cui installarla (inoltre utilizza un valore predefinito se non si modifica la destinazione). Imposta diverse variabili d'ambiente predefinite (incluso windir) più avanti nell'installazione quando inizializza il registro. Ciò è importante solo se si sta modificando il processo di installazione.
Synetech,

nel qual caso potresti provare l'altro . Suppongo che l'altro sia %windir%. È corretto?
René Nyffenegger,

28

Su Win 7 %SystemRoot%è una variabile di sistema di sola lettura mentre %windir%può essere modificata ed è impostata di default come windir=%SystemRoot%. Il sistema operativo fa affidamento %SystemRoot%. Secondo Wikipedia , %WinDir%precede Windows NT e sembra essere sostituito da %SystemRoot%.


1

fatto curioso - (su Windows 10 1809)% windir% è ancora così essenziale che non puoi eseguire nulla di elevato senza di esso ... il che significa che NON PUOI EFFETTUARMENTE INDIETRO perché colpire il registro delle variabili di ambiente apparentemente richiede elevazione :( ... fortunatamente la modalità sicura mi ha permesso di ripristinare quella variabile e continuare a lavorare

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.