Segala sesuatu yang Twisty Impersonator katakan dalam jawaban mereka benar. Gagasan bahwa variabel jalur pengguna ditambahkan telah disorot, dan saya percaya konsekuensi dari perbedaan itu memerlukan beberapa perawatan tambahan.
Path =% Path% (Sistem); % Path% (Pengguna)
Ketika Anda menjalankan program dieksekusi (atau script executable, seperti .bat
, .vbs
, dll) Anda tidak perlu menyediakan lintasan yang memenuhi syarat.
Misalnya, untuk menjalankan java
, Anda dapat mengetikkan salah satu dari ini:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Contoh pertama menggunakan jalur yang sepenuhnya memenuhi syarat. Ini akan selalu menggunakan versi Java di jalur yang tepat itu.
Contoh kedua akan melalui masing-masing direktori di %Path%
variabel lingkungan, mencari file yang dapat dieksekusi bernama java.exe
. Ini akan menjalankan yang pertama yang ditemukan, dan berhenti mencari. Jika ada dua file bernama java.exe
suatu tempat di %Path%
, hanya yang pertama ditemukan digunakan.
Contoh ketiga, seperti yang kedua, akan beralih ke direktori yang tercantum dalam %Path%
. Selain itu, karena ekstensi file tidak disediakan, daftar ekstensi file yang dapat dieksekusi ditambahkan ke nama file, dalam urutan yang ditentukan dalam %PATHEXT%
variabel lingkungan. Jika ada beberapa file yang bernama java.com
, java.exe
, java.bat
, dll di suatu tempat di %Path%
, hanya yang pertama berhasil ditemukan digunakan.
Anda dapat melihat daftar ekstensi jalur yang dapat dieksekusi di sistem Anda dengan membuat file batch berikut:
@echo off
echo %PATHEXT%
pause
Di mesin saya, ini adalah:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY
Apa artinya semua ini?
Dalam kontras dengan variabel lingkungan lainnya, jalur pengguna tidak memungkinkan Anda untuk menimpa sistem jalan. Justru sebaliknya yang terjadi. Dari contoh di atas, ada banyak kasus di mana Anda dapat mengubah versi default Java. Namun, jika sudah ada versi Java yang terdaftar di jalur sistem, itu adalah versi yang akan SELALU ditemukan terlebih dahulu, karena jalur tersebut dicari secara berurutan, dari kiri ke kanan, dan jalur pengguna ditambahkan di sebelah kanan. sisi-sisi, dengan jalur sistem di sebelah kiri.
Apa yang bisa saya lakukan?
Jika Anda tidak memiliki akses ke variabel lingkungan sistem, Anda tidak dapat mengesampingkan program default di jalur sistem dengan menggunakan jalur pengguna. (Sebenarnya, harus seperti ini, atau program tertentu akan berhenti bekerja dengan benar, dan itu akan membuka sistem Anda untuk dirusak oleh perangkat lunak berbahaya. Tidak ada yang menginginkan itu.)
Sebaliknya, Anda harus menggunakan jalur yang sepenuhnya memenuhi syarat jika Anda harus menggunakan versi tertentu.