Mengatur variabel lingkungan sistem dari file batch Windows?

195

Apakah mungkin untuk mengatur variabel lingkungan di tingkat sistem dari prompt perintah di Windows 7 (atau bahkan XP dalam hal ini). Saya menjalankan dari prompt perintah yang ditinggikan.

Ketika saya menggunakan setperintah ( set name=value), variabel lingkungan tampaknya hanya valid untuk sesi prompt perintah.

Santhosh
sumber

Jawaban:

179

Alat Dukungan XP (yang dapat diinstal dari CD XP Anda) datang dengan program yang disebut setx.exe:

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

Saya pikir Windows 7 benar-benar hadir setxsebagai bagian dari instalasi standar.

Hugh Allen
sumber
7
Windows 7 (mungkin sudah Vista) memiliki standar setx, dengan sedikit perubahan? tidak ada -ibendera dan hanya menjalankan setx /?menampilkan semua bantuan + contoh
stijn
3
Ingat Anda selalu dapat memeriksa untuk melihat apakah Anda memiliki program ini di jalur Anda dengan mengetik wheredan kemudian nama program (jadi dalam kasus ini where setx.exedalam pengujian ini pada kotak Server 2008 dan Server 2008SP2 saya menemukan bahwa dalam kedua kasus itu ada di%windir%\System32\setx.exe
aolszowka
2
@stijn - Versi Win7 juga secara resmi mengubah pengantar bendera dari -ke garis miring /. Namun, sepertinya -versi ini masih berfungsi.
TED
2
Tampaknya ada batas 1024 panjang untuk konten variabel
setx
Setx yang disediakan oleh XP SP2 Support Tools membutuhkan garis miring /dan tanda hubung -tidak berfungsi. setx variable value /m
Keith
137

Contoh sederhana untuk cara mengatur JAVA_HOME dengan setx.exedi baris perintah:

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Ini akan mengatur variabel lingkungan "JAVA_HOME" untuk pengguna saat ini. Jika Anda ingin mengatur variabel untuk semua pengguna, Anda harus menggunakan opsi "-m". Berikut ini sebuah contoh:

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Catatan : Anda harus menjalankan perintah ini sebagai Administrator.

Catatan : Pastikan untuk menjalankan setx perintah dari jendela Admin baris perintah

Mindaugas Jaraminas
sumber
7
juga perhatikan bahwa beberapa alat tidak suka spasi di JAVA_HOME sehingga layak digunakan Progra~1seperti: setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"
samael
1
Di mana ini sepanjang hidupku.
Philip Rego
20

Jika Anda mengatur variabel melalui SETX, Anda tidak dapat menggunakan variabel ini atau perubahannya segera. Anda harus memulai kembali proses yang ingin menggunakannya.

Gunakan urutan berikut untuk secara langsung mengaturnya dalam proses pengaturan juga (berfungsi dengan sempurna untuk saya dalam skrip yang melakukan beberapa hal init setelah menyetel variabel global) :

SET XYZ=test
SETX XYZ test
Anton F.
sumber
Terima kasih, ini membuatku gila! CMD.EXE sangat membutuhkan peningkatan untuk berperilaku seperti konsol normal ...!
Salvador Valencia
Saya tidak mengerti: di mana saya menjalankan 2 baris itu?
Danijel
1
Anda juga dapat menjalankan perintah refreshenvsetelah menggunakan setx untuk menggunakan variabel baru.
BrianHVB
@BrianHVB refreshenvtidak dikenali sebagai perintah. Apakah Anda melakukan ini di cmdatau powershell? (EDIT: diuji pada keduanya sebenarnya, tidak bekerja di kedua konsol)
bigp
@bigp oops, Anda benar. Ini adalah perintah yang ditambahkan ketika cokelat diinstal. Saya memiliki cokelat pada semua sistem saya dan tidak menyadari sampai saya mencarinya.
BrianHVB
2

Untuk XP, saya menggunakan alat (gratis / donateware) yang disebut "RAPIDEE" (Editor Lingkungan Cepat), tetapi SETX sudah pasti cukup untuk Win 7 (saya tidak tahu tentang ini sebelumnya).

FractalSpace
sumber
2

Variabel sistem dapat diatur melalui CMD dan registri Sebagai contoh. reg permintaan "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v PATH

Semua kode CMD dan variabel sistem yang umum digunakan diberikan di sini: Setel variabel lingkungan sistem Windows menggunakan CMD .

Buka CMD dan ketik Set

Anda akan mendapatkan semua nilai variabel sistem.

Ketik atur java untuk mengetahui detail jalur java yang diinstal pada OS jendela Anda.

Himanshu Singh
sumber
1

Jika Anda perlu menghapus variabel, Anda dapat menggunakan SETENV dari Vincent Fatica yang tersedia di http://barnyard.syr.edu/~vefatica . Tidak persis baru-baru ini ('98) tetapi masih bekerja pada Windows 7 x64.

menggugurkan
sumber
5
setx memungkinkan Anda untuk menghapus juga dengan mengatur nilainya menjadi kosong
Steve Lloyd