Saya memiliki dua variabel yang ditetapkan pengguna:
ANT_HOME diatur ke% USERPROFILE% \ Developer \ Tools \ Apache \ Apache Ant \ apache-ant-1.8.2 JAVA_HOME diatur ke C: \ Program Files \ Java \ jdk1.6.0_23
Dan saya ingin menambahkan path tersebut ke variabel System sehingga saya dapat mengakses file executable di folder bin mereka. Saya mencoba
PATH disetel ke [jalur lain];% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Namun, itu tidak berhasil. Ketika saya membuka command-prompt dan echo% PATH% variabel pengguna tidak diperluas . Jadi path hanya menampilkan literal,;% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Sepertinya saya ingat ini berfungsi dengan baik pada sistem Windows XP lama saya. Bagaimana cara mengatur ini di Windows 7?
windows-7
environment-variables
Michael Prescott
sumber
sumber
Jawaban:
UPDATE NO.2 - Sekarang ke pertanyaan aktual : Mengapa variabel bersarang, yang dibuat pengguna gagal berkembang?
Ada beberapa masalah umum tentang ekspansi variabel di Windows. Saya sudah mengalami masalah yang sama dan tidak menemukan keadaan yang jelas dan dapat direproduksi - tingkat rekursi di mana ekspansi gagal tidak konsisten, karakter khusus tampaknya tidak berperan, dll.
Satu-satunya solusi yang saya temukan adalah menambahkan variabel tingkat rekursi dengan tingkat rekursi. Itu berarti: Coba hapus semua variabel yang ingin Anda buat bersarang satu sama lain (termasuk panggilan dari PATH ke variabel yang ditentukan pengguna Anda), dan kemudian mulai dari awal. Tentukan variabel dasar Anda (dll. ANT-HOME), komit, periksa apakah diperluas, jika ya, lanjutkan dengan komit tingkat berikutnya, periksa ... Anda mendapatkan ide.
JAWABAN TERBARU - Menentukan variabel lingkungan permanen menggunakan CLI dan GUI - Gulir ke bawah untuk jawaban aslinya
Metode GUI:
Pada Windows 7, cukup ketik "sistem" di META-Prompt dan Anda akan melihat entri "Edit Variabel Lingkungan Sistem". Dari sana, klik "Variabel lingkungan". Di sana, Anda dapat mengedit variabel sistem PATH (daftar bawah) atau menambah / mengedit variabel PATH baru ke variabel lingkungan pengguna.
Metode baris perintah:
Untuk mengubah variabel lingkungan secara permanen, Anda harus menggunakan perintah SETX di baris perintah Windows. Tidak seperti versi Windows lainnya, Windows 7 terintegrasi dengan Windows 7. Sintaksnya berbeda dari SET, tetapi juga kuat. Anda harus sedikit berhati-hati, mudah untuk mengacaukan variabel Anda dengan SETX.
Secara default, Anda mengubah variabel pengguna . Anda dapat memiliki variabel lingkungan pengguna PATH yang dengan senang hati hidup berdampingan dengan variabel sistem PATH. Jika Anda belum mendefinisikannya, lakukan dengan mengetik:
SETX PATH yourpath
Anda juga dapat menambahkan nilai ke PATH variabel sistem. Untuk melakukan ini, pertama-tama Anda perlu memunculkan baris perintah dengan hak istimewa admin. Untuk melakukan ini, tekan tombol Meta (Windows), ketik
cmd
dan tekanCTRL
+SHIFT
+ENTER
dan konfirmasikan dialog UAC.Untuk menambahkan nilai baru ke jalur, sekarang Anda dapat memasukkan
Sangat penting untuk mengikuti sintaks itu! Jika Anda tidak memasukkan% path% terlebih dahulu, semua nilai path yang ada akan hilang dan diganti hanya dengan Anda path baru. Sakelar / m di bagian akhir menetapkan variabel di lingkungan sistem.
Harap dicatat bahwa Anda harus memunculkan baris perintah baru untuk menggunakan variabel baru Anda.
Ada juga referensi lengkap untuk SETX di TechNet .
JAWABAN LAMA Perintah SET memperbarui variabel hanya selama durasi sesi baris perintah saat ini.
Sintaks yang benar untuk menambahkan nilai ke variabel adalah 'set [variabel] =% [variabel]%; [nilai baru] `
Perhatikan bahwa di kiri tanda sama dengan, Anda harus menghilangkan tanda persen!
Sumber: Referensi baris perintah TechNet untuk Windows Server
sumber
Artikel Dukungan Microsoft dari jalan di 2007 - nomor 329308 - menjelaskan bug di Shell32.dll, yang merupakan penyebab masalah ini. Solusinya adalah menambahkan
PATH
variabel ke daftar variabel pengguna yang diatur keIni mengatasi masalah ini. Saya tidak suka mengaturnya hanya untuk pengguna saya, tetapi entah bagaimana sistem saya menunjukkan gejala bug lama ini dan saya belum melihat jawaban lain yang lebih baik.
sumber