Mengatur dan mendapatkan variabel lingkungan Windows dari command prompt?

220

Saya ingin mengatur variabel lingkungan dari command prompt dan kemudian dapat mengaksesnya secara global (misalnya, saya akan melihatnya dengan masuk ke System -> Variabel Lingkungan).

Ketika saya menggunakan perintah set, itu tidak dapat diakses di sesi cmd baru.

set NEWVAR=SOMETHING
echo %NEWVAR%

Pertanyaan-pertanyaan Terkait:

Shane
sumber
1
nilai variabel setx - lalu mulai kembali Command Prompt
Andrew

Jawaban:

252

Untuk membuat variabel lingkungan dapat diakses secara global, Anda perlu mengaturnya di registri. Seperti yang telah Anda sadari dengan hanya menggunakan:

atur NEWVAR = SESUATU

Anda hanya mengaturnya di ruang proses saat ini.

Menurut halaman ini Anda dapat menggunakan setxperintah:

setx NEWVAR SESUATU

setxdibangun ke dalam Windows 7, tetapi untuk versi yang lebih lama mungkin hanya tersedia jika Anda menginstal Windows Resource Kit

ChrisF
sumber
4
Perhatikan bahwa Anda perlu menentukan kuota, misalnya: setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_45"akan berfungsi. Tetapi setx JAVA_HOME C:\Program Files\Java\jdk1.7.0_45akan memberi Anda kesalahan sintaksis
MD. Mohiuddin Ahmed
5
@ MD.MohiuddinAhmed Itu karena ada spasi di jalan.
ChrisF
36

Kita juga dapat menggunakan "setx var variable / M" untuk mengatur var ke level variabel lingkungan sistem alih-alih level pengguna.

Catatan: Perintah ini harus dijalankan sebagai administrator.

Minh Chau
sumber
10
setx program "C:\Program Files" /M

/ M untuk mengatur tingkat variabel lingkungan sistem daripada tingkat pengguna seperti jawaban @Minh Chau

Uji masukkan deskripsi gambar di sini

RESTART baris perintah (jika Anda tidak me-restart baris perintah, variabel lingkungan tidak akan berfungsi)

masukkan deskripsi gambar di sini

Phan Van Linh
sumber
Ini menggandakan jawaban lain dan tidak menambahkan konten baru. Harap jangan mengirim jawaban kecuali Anda benar-benar memiliki sesuatu yang baru untuk disumbangkan.
DavidPostill
8
@ DavidPostill jawaban saya punya yang baru adalah kita perlu me-restart baris perintah. Saya pikir ini penting
Phan Van Linh
2

Anda dapat menggunakan setx env var [/M]seperti yang disebutkan di atas. Jika tidak berlaku, Anda dapat menggunakan refreshenvuntuk menyegarkan variabel lingkungan. Anda tidak perlu me-restart komputer Anda, explorer.exe atau prompt perintah Anda untuk melakukannya.

Sunting: tampaknya refreshenv tidak datang secara alami dengan Windows, jadi inilah sumbernya: https://pastebin.com/1fJqA0pT
Simpan sebagai RefreshEnv.cmd dan letakkan di folder yang termasuk dalam variabel lingkungan PATH Anda

DFSFOT
sumber
1
+1 untuk menyebutkan 'refreshenv' - Saya belum pernah menemukan itu sebelumnya!
Francis Norton
1

Variabel sistem dapat diatur melalui CMD dan registri Sebagai contoh. reg query "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 set java untuk mengetahui detail jalur java yang terinstal di OS windows Anda.

Himanshu Singh
sumber
Silakan baca pertanyaan itu lagi dengan seksama. Jawaban Anda tidak menjawab pertanyaan awal.
DavidPostill
Itu sudah dekat. Menggunakan REG ADD dapat melakukannya?
TOOGAM
0

Saya ingin menambahkan bahwa jika Anda menggunakan parameter / s dengan setx untuk mengatur variabel lingkungan pada komputer jarak jauh, layanan "Remote Registry" perlu dijalankan pada mesin target atau Anda akan menerima "KESALAHAN: operasi yang ditentukan tidak dapat diselesaikan. "

(Saya telah meminta Microsoft untuk memperbarui artikel TechNet mereka di setx untuk memasukkan informasi ini.)

Tim Bailen
sumber