Apakah benar memiliki dua variabel lingkungan ini TEMP dan TMP? Jika saya membuat perubahan pada satu, apakah saya harus membuat perubahan yang sama ke yang lain? Sebagai contoh saya sedang menginstal cygwin dan petunjuknya menyuruh saya untuk mengubah variabel PATH, tetapi TEMP dan TMP memiliki variabel path. Apa perbedaan keduanya?
Tidak yakin mengapa orang ingin melihat ini, tetapi inilah nilainya untuk jalur: Jalur di TEMP: C: \ Program Files \ Common Files \ Microsoft Shared \ Windows Live; C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ Windows Live; C: \ Program Files (x86) \ NVIDIA Corporation \ PhysX \ Common;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files (x86) \ File Umum \ Acronis \ SnapAPI \; C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program Files (x86) \ Windows Live \ Shared
Path di TMP:% USERPROFILE% \ AppData \ Local \ Temp
sumber
TMP
mungkin orang yang memilih (karenaGetTempFileName
fungsi) ...Jawaban:
Untuk menjawab pertanyaan secara khusus:
Tidak ada perbedaan. Mereka hanya alias berbeda untuk jalur yang sama. Seperti yang disebutkan Mark, beberapa program digunakan
%TMP%
sementara yang lain digunakan%TEMP%
. Windows menetapkan keduanya ke jalur yang sama secara default untuk memastikan konsistensi antara program yang berbeda, dan bahkan melindungi terhadap kesalahan pengembang seperti menggunakan keduanya di program yang sama.Perhatikan juga bahwa
%Path%
variabel tidak ada hubungannya dengan salah satu%TMP%
atau%TEMP%
.%Path%
adalah variabel sistem, sementara%TMP%
dan%TEMP%
keduanya adalah variabel sistem serta variabel pengguna. Tautan versi sistem keC:\windows\TEMP
. AFAIK, hanya pengguna "Sistem" yang benar-benar dapat menggunakan variabel-variabel tersebut, sebagaimana dibuktikan oleh tes sederhana; buka jendela cmd dan ketikecho %TMP%
atauecho %TEMP%
, dan itu akan mengembalikan path yang didefinisikan dalam versi pengguna dari variabel. Namun karena%Path%
tidak memiliki versi pengguna (secara default), Anda dapat melakukannyaecho %Path%
dan mengembalikan nilai variabel sistem.Saya tidak sepenuhnya yakin bagaimana program menggunakan variabel sistem "Path", yang kemungkinan merujuk pada cygwin, tetapi terlepas dari itu, saya dapat meyakinkan Anda bahwa itu tidak ada hubungannya dengan TMP atau TEMP.
Semoga itu menjawab pertanyaan Anda.
EDIT: Saya baru ingat untuk apa
%Path%
- ini memungkinkan Anda mengakses file apa saja yang ada di jalur mana pun yang ditentukan dalam variabel tanpa perlu menggunakan path lengkap ke file tersebut. Sebagai contoh, menambahkan "C: \ myprog \ bin" ke% Path% akan membiarkan Anda cukup ketikmyprog
ataumyprog --help
lain - lain ke dalam command-line tanpa harus mengetikkan path lengkap, seperti"C:\myprog\bin\myprog.exe" --help
. Tentu saja penggunaan baris perintah hanyalah sebuah contoh, ini memungkinkan program atau antarmuka apa pun mengakses file jenis apa pun tanpa memerlukan path lengkap.sumber
%USERPROFILE%\AppData\Local\Temp
memperbaiki salah satu masalah saya, tetapi menghasilkan lebih banyak. Saya mengubahnya kembali keC:\Windows\Temp
. Jika ada versi pengguna, maka sistem dapat digunakanC:\Windows\Temp
, sementara saya bisa menggunakan%USERPROFILE%\AppData\Local\Temp
dan semua orang senang. Saya akan mencobanya. Terima kasih!Anda memang membutuhkan keduanya karena program yang berbeda menggunakan yang berbeda.
Mereka tidak perlu diatur ke tempat yang sama karena hanya program yang ditulis sangat buruk akan menggunakan keduanya dengan asumsi mereka menunjuk ke hal yang sama.
/ tmp adalah direktori umum untuk file sementara di Unix juga menggunakan variabel lingkungan TMPDIR
Dari memori (ketika saya menggunakan ini di pertengahan 80-an) TEMP adalah yang asli yang digunakan dalam DOS dan TMP cenderung digunakan oleh program-program yang porting dari Unix agar sesuai dengan / tmp. Namun ketika program ditulis dalam DOS karena tidak ada kontrol, pengembang yang berbeda menggunakan yang berbeda. Di Windows modern, standar Microsoft adalah sama untuk keduanya, lihat dokumen ini
sumber
TMPDIR
. Standar tidak menyebutkan salah satuTMP
atauTEMP
keduanya yang berasal dari dunia DOS.