Saya mencoba untuk menambah variabel lingkungan C:\xampp\php
sistem saya PATH
di Windows.
Saya sudah menambahkannya menggunakan kotak dialog Environment Variables.
Tetapi ketika saya mengetik di konsol saya:
C:\>path
itu tidak menunjukkan C:\xampp\php
direktori baru :
PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
Saya punya dua pertanyaan:
- Kenapa ini terjadi? Apakah ada sesuatu yang saya lakukan salah?
- Juga, bagaimana cara menambahkan direktori ke
PATH
variabel saya menggunakan konsol (dan secara terprogram, dengan file batch)?
windows
command-line
path
environment-variables
Netorica
sumber
sumber
Jawaban:
Ini hanya mengubah registri. Proses yang ada tidak akan menggunakan nilai-nilai ini. Proses baru akan melakukannya jika dimulai setelah perubahan ini dan tidak mewarisi lingkungan lama dari induknya.
Anda tidak menentukan bagaimana Anda memulai sesi konsol. Cara terbaik untuk memastikan ini adalah keluar dari shell perintah dan jalankan lagi. Maka harus mewarisi PATH yang diperbarui.
sumber
WM_SETTINGCHANGE
pesan dikirim dari aplikasi? stackoverflow.com/a/8358361Pilihan 1
Setelah Anda berubah
PATH
dengan GUI, tutup dan buka kembali jendela konsol.Ini berfungsi karena hanya program yang dimulai setelah perubahan yang akan melihat yang baru
PATH
.pilihan 2
Jalankan perintah ini di jendela perintah yang telah Anda buka:
Perintah ini ditambahkan
C:\your\path\here\
ke arusPATH
.Hancurkan:
set
- Perintah yang mengubah variabel lingkungan cmd hanya untuk sesi cmd saat ini ; program lain dan sistem tidak terpengaruh.PATH=
- Menandakan bahwa ituPATH
adalah variabel lingkungan untuk sementara diubah.%PATH%;C:\your\path\here\
- Bagian%PATH%
mengembang ke nilai saat iniPATH
, dan;C:\your\path\here\
kemudian digabungkan untuk itu. Ini menjadi yang baruPATH
.sumber
Anda dapat menambahkan path secara permanen
PATH
dengansetx
perintah:Hapus
/M
bendera jika Anda ingin mengatur penggunaPATH
daripada sistemPATH
.Catatan:
setx
Perintah ini hanya tersedia pada Windows 7 dan kemudian.Anda harus menjalankan perintah ini dari prompt perintah yang ditinggikan.
Jika Anda hanya ingin mengubahnya untuk sesi saat ini, gunakan set .
sumber
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
untuk menetapkan nilai PATH pada level mesin%PATH%
variabel, perintah ini menggabungkan variabel env global dengan yang pengguna. Bukan? Ini dapat menciptakan efek samping yang tidak diinginkan, terutama dengan sakelar / M%PATH%
variabel mungkin tidak sinkron dengan variabel lingkungan seperti yang dimuat pada peluncuran command prompt dan tidak pernah mengisi sesudahnya (bahkan ketika menjalankan perintah setX). Juga bisa diubah secara lokal oleh skrip yang dieksekusi sebelumnya.Anda tidak memerlukan
set
atausetx
perintah apa pun , cukup buka terminal dan ketik:Ini menunjukkan nilai variabel PATH saat ini. Sekarang Anda ingin menambahkan direktori ke dalamnya? Cukup ketik:
Jika karena alasan apa pun Anda ingin menghapus variabel PATH (tidak ada jalur sama sekali atau menghapus semua jalur di dalamnya), ketik:
Memperbarui
Seperti Danial Wilson yang dicatat dalam komentar di bawah, itu menetapkan jalur hanya di sesi saat ini. Untuk mengatur jalur secara permanen gunakan
setx
tetapi waspada, meskipun itu menetapkan jalur secara permanen tetapi TIDAK di sesi saat ini, jadi Anda harus memulai baris perintah baru untuk melihat perubahan, info lebih lanjut di sini .Untuk memeriksa apakah variabel lingkungan ada atau lihat nilainya gunakan perintah ECHO:
sumber
PATH %PATH%;C:\Program Files\...
alih-alihPATH "%PATH%;C:\Program Files\..."
Saya akan menggunakan PowerShell sebagai gantinya!
Untuk menambahkan direktori ke PATH menggunakan PowerShell, lakukan hal berikut:
Untuk mengatur variabel untuk semua pengguna, di seluruh mesin, baris terakhir harus seperti:
Dalam skrip PowerShell, Anda mungkin ingin memeriksa keberadaan Anda
C:\xampp\php
sebelum menambahkan ke PATH (jika sebelumnya telah ditambahkan). Anda dapat membungkusnya denganif
kondisi bersyarat.Jadi menyatukan semuanya:
Lebih baik lagi, seseorang dapat membuat fungsi generik. Cukup sediakan direktori yang ingin Anda tambahkan:
Anda bisa memperbaiki keadaan dengan melakukan pemolesan. Misalnya, gunakan
Test-Path
untuk mengonfirmasi bahwa direktori Anda benar-benar ada.sumber
SetEnvironmentVariable
denganMachine
parameter Anda perlu membuka PowerShell dengan hak administrator$env:userprofile
.user
ataumachine
dalam panggilanGetEnvironmentVariable
. Jika tidak,$PATH
akan berisi nilai bagian pengguna dan mesin dari registri yang secara tidak perlu akan meledakkan variabel path ketika menyimpannya lagi.SETX lebih aman
Mengangguk semua komentar pada jawaban awal @Nafscript
SETX
.SETX
secara default akan memperbarui pengguna Anda jalur .SETX ... /M
akan memperbarui sistem Anda jalur .%PATH%
berisi jalur sistem dengan jalur pengguna ditambahkanPeringatan
PATH
-SETX
akan memotong sampah Anda lebih dari 1024 karakterSETX %PATH%;xxx
- tambahkan jalur sistem ke jalur penggunaSETX %PATH%;xxx /M
- tambahkan jalur pengguna ke jalur sistemHalaman ss64 SETX memiliki beberapa contoh yang sangat bagus. Yang penting itu menunjuk ke tempat kunci registri untuk
SETX
vsSETX /M
Instruksi penggunaan
Tambahkan ke Pengguna
PATH
append_user_path.cmd
Tambahkan ke Sistem
PATH
append_system_path.cmd
. Harus dijalankan sebagai admin.(Pada dasarnya sama kecuali dengan pengubah yang berbeda
Key
danSETX /M
)Alternatif
Akhirnya ada versi yang berpotensi ditingkatkan yang disebut SETENV direkomendasikan oleh halaman SETX ss64 yang membagi pengaturan variabel lingkungan pengguna atau sistem.
1. Tidak sepenuhnya benar
sumber
Terlambat ke pesta - tetapi berguna jika Anda sudah berada di direktori yang ingin Anda tambahkan ke PATH.
set PATH=%PATH%;%CD%
sunting: sesuai komentar - bekerja dengan cmd windows standar tetapi tidak di PowerShell.
Untuk PowerShell
%CD%
setara adalah[System.Environment]::CurrentDirectory
sumber
[System.Environment]::CurrentDirectory
Selain semua jawaban, jika Anda ingin alat GUI yang bagus untuk mengedit variabel lingkungan windows Anda, Anda dapat menggunakan Rapid Environment Editor
Cobalah! itu aman untuk digunakan dan luar biasa!
http://www.rapidee.com/en/
sumber
Untuk mengganti yang sudah termasuk executable;
sumber
Memeriksa saran di atas pada Windows 10 LTSB, dan dengan sekilas pada garis "bantuan" (yang dapat dilihat saat mengetik 'perintah /?' Pada cmd), membawa saya pada kesimpulan bahwa perintah PATH mengubah variabel lingkungan sistem Nilai jalur hanya untuk sesi saat ini, tetapi setelah reboot semua nilai diatur ulang ke default-sama seperti sebelum menggunakan perintah PATH.
Di sisi lain, menggunakan perintah SETX dengan hak administratif jauh lebih kuat, ia mengubah nilai-nilai itu untuk selamanya (atau setidaknya sampai waktu berikutnya perintah ini digunakan atau sampai waktu berikutnya nilai-nilai itu dimanipulasi secara manual GUI ...).
Tetapi demi kejelasan, saya pikir berbagi di sini penggunaan sintaks SETX terbaik yang bekerja untuk saya mungkin membantu seseorang suatu hari:
di mana tanda sama dengan '=' harus dihindari, dan jangan khawatir tentang spasi! tidak perlu memasukkan tanda kutip lagi untuk jalur yang berisi spasi di dalamnya- tanda perpecahan ';' lakukan pekerjaan.
Kata kunci PATH yang mengikuti SETX menentukan set nilai mana yang harus diubah di antara nilai-nilai yang mungkin untuk System Environment Variabel, dan% PATH% (kata PATH dikelilingi oleh tanda persen) di dalam tanda kutip, memberitahu OS untuk meninggalkan yang sudah ada Nilai PATH sebagaimana adanya dan tambahkan jalur berikut (yang mengikuti tanda split ';') ke nilai yang ada.
HTH
sumber
Mengenai poin 2 saya menggunakan file batch sederhana yang sedang diisi
PATH
atau variabel lingkungan lainnya untuk saya. Oleh karena itu, tidak ada polusi variabel lingkungan secara default. File batch ini dapat diakses dari mana saja sehingga saya dapat mengetik:sumber
source
file seperti itu, seperti. mybatchfile
).Dalam prompt perintah, Anda memberi tahu Cmd untuk menggunakan baris perintah Explorer dengan membukanya terlebih dahulu
start
.Jadi
start Yourbatchname
.Catatan Anda harus mendaftar seolah-olah namanya
batchfile.exe
.Program dan dokumen dapat ditambahkan ke dalam registri sehingga mengetik namanya tanpa jalurnya di kotak dialog Start-Run atau pintasan memungkinkan Windows untuk menemukannya.
Ini adalah file reg generik. Salin baris di bawah ini ke Dokumen Teks baru dan simpan sebagai anyname.reg. Edit dengan program atau dokumen Anda.
Di jalur gunakan \ untuk memisahkan nama folder di jalur kunci sebagai regedit menggunakan satu \ untuk memisahkan nama kunci itu. Semua file reg mulai dengan REGEDIT4. Tanda titik koma mengubah garis menjadi komentar. Simbol @ berarti untuk menetapkan nilai pada kunci daripada nilai yang disebutkan.
File tidak harus ada. Ini dapat digunakan untuk mengatur Word.exe untuk membuka Winword.exe.
Pengetikan
start batchfile
akan mulai iexplore.exe.Anda telah diberi tahu tentang path pada jawaban lain. Lihat juga
doskey /?
makro cmd (mereka hanya bekerja saat mengetik).Anda dapat menjalankan perintah startup untuk CMD. Dari Referensi Teknis Kit Sumber Daya Windows
AutoRun
Deskripsi
Berisi perintah yang dijalankan setiap kali Anda memulai Cmd.exe.
sumber
Alternatif yang lebih baik untuk Control Panel adalah dengan menggunakan program freeware ini dari sourceforge yang disebut Pathenator:
https://sourceforge.net/projects/pathenator/
Namun, itu hanya pekerja untuk sistem yang memiliki Dot.Net 4.0 atau lebih besar seperti windows 7,8, atau 10.
sumber
Jika Anda menjalankan perintah
cmd
, itu akan memperbarui semua variabel sistem untuk jendela perintah itu.sumber
exit
dua kali, pertama untuk menutup yang baru dan kemudian untuk menutup sesi pertama (dengan lingkungan lama).gunakan pathed dari gtools
itu melakukan hal-hal dengan cara yang intuitif misalnya:
itu dan menunjukkan hasil tanpa perlu menelurkan cmd baru !
sumber
Cadangkan variabel lingkungan PATH saya saat ini: jalankan
cmd
, dan jalankan perintah:path >C:\path-backup.txt
Dapatkan nilai jalur saya saat ini ke file C: \ path.txt (cara yang sama)
setx path "Here you should insert string from buffer (new path value)"
php -v
sumber
Mungkin sepele, saya harus me - restart Windows ketika dihadapkan dengan masalah ini.
Saya menjalankan Windows 7 x64. Saya melakukan pembaruan manual ke variabel sistem PATH. Ini berfungsi baik jika saya menjalankan cmd.exe dari menu stat. Tetapi jika saya mengetik "cmd" di bilah alamat Windows Explorer, sepertinya memuat PATH dari tempat lain, yang tidak memiliki perubahan manual.
(Untuk menghindari keraguan - ya, saya menutup dan menjalankan kembali cmd beberapa kali sebelum saya memulai kembali dan itu tidak membantu.)
sumber