Saya memiliki variabel sistem PATH dengan konfigurasi tingkat sistem. Saya menggunakan variabel PATH pengguna untuk melengkapi PATH dengan konfigurasi khusus pengguna.
Saya ingin memperbarui variabel PATH pengguna dari command-line misalnya dengan setx.
Tapi saya tidak tahu bagaimana referensi jalur pengguna yang ada di setx.
Dalam perintah berikut (setx tanpa / M)
setx PATH c:\my-user-specifc-bin-path;%PATH%
PATH pertama berarti PATH pengguna tetapi% PATH% kedua akan diganti dengan PATH "lengkap" (sistem + pengguna).
Jadi itu berarti bahwa seluruh jalur sistem akan diduplikasi dalam PATH pengguna ... apa yang pasti bukan yang saya inginkan.
Saya minta:
- Hanya memengaruhi variabel lingkungan PATH pengguna
- Tambahkan / Tambahkan satu elemen jalan atau lebih ke nilai yang ada
- Lakukan dari baris perintah.
windows
command-line
path
environment-variables
Christian Lemer
sumber
sumber
;%PATH%
Anda meminta jalur yang ada (berasal dari jalur sistem) untuk ditambahkan.Jawaban:
Versi PowerShell, atur PATH untuk pengguna:
sumber
Untuk mengatur PATH Pengguna menimpa nilai sebelumnya:
Untuk menambahkan nilai "C: \ MyPath0" ke PATH Pengguna yang ada:
Untuk menambahkan nilai "C: \ MyPath2" ke PATH Pengguna yang ada:
Kondisi if-else diperlukan karena PATH Pengguna mungkin berisi spasi atau tidak. Jika mau, Anda dapat menyimpan perintah sebagai file batch umum (pastikan untuk menggandakan setiap tanda%) yang menerima nilai yang akan diset / prepended / ditambahkan sebagai argumen.
File Batch
sumber
for /?
akan memberi tahu Anda semua yang perlu Anda ketahui. :) Saya tidak ingin mereplikasi semuanya di sini secara tidak perlu dan berpikir bahwa info akan mudah diketahui.PATH
sudah mengakhiri dengan titik koma di mana menambahkan direktori lulus harus dilakukan tanpa titik koma tambahan. Tetapi masalah terbesar dengan kode ini adalah korupsi penggunaPATH
jika string menjadi lebih dari 1024 karakter karenasetx
memotong string menjadi 1024 karakter dengan menampilkan informasi yang sesuai sebelum menambahkannya ke registri Windows. Jadi bisa terjadi bahwa alih-alih menambahkan direktori yang disahkan, pengguna yangPATH
ada terpotong (kacau) oleh kode ini.perlu
SETX /M
, defaultSETX
diatur keHKEY_CURRENT_USER
sumber
Ini sepertinya berhasil:
sumber
PATH
menggunakan lokalPATH
. Baris perintah ini benar-benar merusak penggunaPATH
dengan menambahkan ke string Windows registri untuk pengguna dalam kasus terbaik. Semua orang yang menggunakan baris perintah ini telah berhasil merusak pengaturan pengguna dan lokal seperti yang digunakan oleh semua proses yang berjalan dengan akun pengguna saat ini setelah Windows restart atau logoff / masuk.PATH
c:\my-user-specifc-bin-path-which-may-contain-spaces;%C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%
PATH
PATH