Apa perbedaan antara% WinDir% dan% SystemRoot%?

33

Apa perbedaan antara% Windir% dan% Systemroot% di Lokasi Windows Path?
Keduanya menunjukkan lokasi folder "Windows".

Amirreza Nasiri
sumber

Jawaban:

34

Untuk memperluas jawaban Mr Dave, %SystemRoot%adalah built-in variabel (bersama dengan segelintir kecil orang lain seperti %SystemDrive%). Artinya, itu tidak benar-benar didefinisikan di toko variabel lingkungan di HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentdalam registri.

Di sisi lain, %windir%adalah variabel reguler dan didefinisikan dalam variabel store sebagai %SystemRoot%. (Tidak ada mitra "nyata" untuk %SystemDrive%.)

Yang digunakan tidak terlalu penting, tetapi Anda mungkin mengalami masalah dengan ekspansi variabel dalam file batch, dalam hal ini Anda bisa mencoba yang lain. (Saya tidak ingat memiliki masalah dengan ini secara khusus, tetapi perlu diingat.)

Selain itu, %SystemRoot%(dan %SystemDrive%) diatur selama proses instalasi (ketika Anda memilih drive tujuan) dan dengan demikian tersedia dari titik paling awal ketika Windows sedang diinstal sedangkan %windir%diatur pada titik kemudian selama instalasi, jadi jika Anda membuat beberapa semacam instalasi khusus (misalnya, OEM, PE, dll.), yang ingin Anda gunakan %SystemRoot%.

Synetech
sumber
Jadi,% windir% dibangun SETELAH instalasi?
Amirreza Nasiri
2
Tidak, selama instalasi, tetapi setelah %SystemRoot%. Windows memiliki informasi yang cukup untuk diatur SystemDrivedan SystemRootsegera setelah Anda memilih drive tempat menginstalnya (plus itu menggunakan default jika Anda tidak mengubah tujuan). Ini menetapkan beberapa variabel lingkungan default (termasuk windir) nanti dalam instalasi ketika menginisialisasi registri. Ini hanya masalah jika Anda memodifikasi proses instalasi.
Synetech
dalam hal ini Anda bisa mencoba yang lain . Saya berasumsi yang lain adalah %windir%. Apakah itu benar?
René Nyffenegger
28

On Win 7 %SystemRoot%adalah variabel sistem read-only sementara %windir%dapat diubah dan diatur secara default sebagai windir=%SystemRoot%. OS mengandalkan %SystemRoot%. Menurut Wikipedia , %WinDir%pra-tanggal Windows NT dan tampaknya akan digantikan oleh %SystemRoot%.

Dave
sumber
1

Fakta menyenangkan - (pada Windows 10 1809)% windir% masih sangat penting sehingga Anda tidak dapat menjalankan apa pun yang naik tanpanya ... yang berarti ANDA TIDAK BISA SEPENUHNYA TETAPKAN KEMBALI KARENA karena mengenai variabel lingkungan, registri tampaknya memerlukan peningkatan :( ... untungnya safe mode memang memungkinkan saya untuk mengembalikan variabel itu dan terus truckin '

Beej
sumber