Cara menambahkan ke pengguna% PATH% dari baris perintah

1

Saya menemukan banyak pertanyaan seperti ini di StackExchange tetapi tidak ada yang bekerja dalam kasus spesifik saya.

Saya ingin dengan mudah menambahkan secara harfiah% FOO% ke variabel lingkungan pengguna PATH.

Saya menemukan solusinya di bawah ini. Sayangnya itu tidak berfungsi seperti yang diharapkan.

for /f "skip=2 tokens=3*" %a in ('reg query HKCU\Environment /v PATH') do @if [%b]==[] ( @setx PATH "%~a;%FOO%" ) else ( @setx PATH "%~a %~b;%FOO%" )

Tidak berfungsi jika:

  • Variabel PATH pengguna tidak ada
  • PATH pengguna ada dan kosong
  • Panjang PATH pengguna hampir 255 char.

Selain itu tidak menambahkan% FOO% secara harfiah tetapi memperluasnya.

Apakah ada kemungkinan untuk dengan mudah melakukannya?

sekarang
sumber
Untuk mendapatkan %FOO%secara harfiah, cobalah mengetik %%FOO%%. Agak terkait: Mengatur variabel lingkungan dan menambahkan ke seluruh sistem% PATH% dengan file batch Windows
G-Man

Jawaban:

3

Itu tergantung pada apa yang Anda coba lakukan:

  • Untuk memperbarui PATH di sesi commandline Anda saat ini saja, gunakan: set PATH=%PATH%;%FOO%.
  • Untuk mengeditnya untuk pengguna saat ini saja, gunakan: setx PATH "%PATH%;%FOO%". Perhatikan bahwa perubahan ini tidak terlihat di sesi baris perintah Anda saat ini ; Anda perlu memulai baris perintah baru.
  • Untuk mengeditnya untuk semua pengguna pada mesin, gunakan: setx /M PATH "%PATH%;%FOO%".

Anda dapat melihat jalur dengan mengetikkan ECHO %PATH%baris perintah atau dengan memeriksanya di pengaturan lingkungan Windows .

Juga, pada Windows 7 dan 8, ukuran string variabel lingkungan maksimum adalah 32.767 karakter. Meskipun ini juga berlaku untuk variabel PATH, perintah dalam konsol perintah memiliki panjang maksimum 8191 karakter, jadi Anda harus mempertimbangkannya saat menggunakan variabel PATH dalam perintah baris perintah. Bagaimanapun, Anda memiliki ruang kepala lebih dari 256 karakter yang Anda miliki sekarang.

agtoever
sumber
Berita baik untuk panjang maksimal!
nowox
Panjang variabel maksimum yang dapat diakses dalam konsol perintah (cmd.exe) adalah 8191 byte (panjang baris perintah maksimum). Ini benar dari XP hingga Win 8. Saya belum menguji apakah nilai PATH lebih dari 8191 byte berfungsi dengan baik, tapi saya cukup yakin tidak. Jadi ya, sebagian besar program dapat bekerja dengan variabel hingga 32k, tetapi nilai besar tidak baik untuk konsol perintah.
dbenham
@benham: menambahkan komentar tentang itu.
agtoever