it-swarm-tr.com

Windows'ta PATH Ortam Değişkeni'ne dizin ekleme

Windows'ta C:\xampp\php sistemime PATH ortam değişkenine eklemeye çalışıyorum.

Ortam Değişkenleri iletişim kutusunu kullanarak zaten ekledim.

Ancak konsoluma yazdığımda:

C:\>path

yeni C:\xampp\php dizinini göstermiyor:

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

İki sorum var:

  1. Bu neden oldu? Yanlış yaptığım bir şey mi var?
  2. Ayrıca, konsolu kullanarak (ve programlı olarak bir toplu iş dosyasıyla) PATH değişkenime dizinler nasıl eklerim?
433
Mp de la Vega

Bu yalnızca kayıt defterini değiştirir. Mevcut bir işlem bu değerleri kullanmaz. Sonra başlatılırsa, yeni bir işlem başaracaktır; bu değişiklik ve, eski ortamı üst öğesinden devralmaz.

Konsol oturumunu nasıl başlattığınızı belirtmediniz. Bunu sağlamanın en iyi yolu, Shell komutundan çıkıp tekrar çalıştırmaktır. Daha sonra güncellenmiş PATH miras almalıdır.

120
Hans Passant

Seçenek 1

PATH öğesini GUI ile değiştirdikten sonra, konsol penceresini kapatıp yeniden açın.

Bu işe yarıyor, çünkü yalnızca değişiklikten sonra başlatılan programlar yeni PATH dosyasını görecek.

Seçenek 2

Açtığınız komut penceresinde bu komutu çalıştırın:

set PATH=%PATH%;C:\your\path\here\

Bu komut mevcut PATH öğesine C:\your\path\here\ ekler.

Yıkılıyor:

  • set - cmd'nin ortam değişkenlerini yalnızca geçerli cmd oturumu için değiştiren bir komut; diğer programlar ve sistem etkilenmez.
  • PATH= - PATH öğesinin geçici olarak değiştirilecek olan ortam değişkeni olduğunu belirtir.
  • %PATH%;C:\your\path\here\ - %PATH% bölümü, PATH öğesinin geçerli değerine genişler ve ;C:\your\path\here\ sonra birleştirilir. Bu yeni PATH olur.
847
JimR

WARNING: Bu çözüm PATH'nize ve sisteminizin kararlılığına zarar verebilir. Yan etkisi olarak, kullanıcı ve sistem PATH'inizi birleştirecek ve PATH'ı 1024 karakter olarak kesecektir. Bu komutun etkisi geri döndürülemez. Önce PATH'in yedeğini alın. Daha fazla bilgi için yorumlara bakınız.

Bunu kör bir şekilde kopyalayıp yapıştırmayın. Dikkatle kullanın.

Perman [, PATH komutuyla setx dizinine yol ekleyebilirsiniz:

setx /M path "%path%;C:\your\path\here\"

Kullanıcının PATH yerine PATH kullanıcısını ayarlamak istiyorsanız /M bayrağını kaldırın.

Notlar:

  • setx komutu yalnızca Windows 7 ve sonrasında kullanılabilir.
  • Bu komutu yükseltilmiş bir Komut İstemi'nden çalıştırmalısınız.

  • Yalnızca geçerli oturum için değiştirmek isterseniz, set kullanın.

169
Nafscript

Herhangi bir set veya setx komutuna ihtiyacınız yoktur, sadece terminali açın ve şunu yazın:

PATH

Bu PATH değişkeninin geçerli değerini gösterir. Şimdi ona dizin eklemek ister misiniz? Basitçe yazın:

PATH %PATH%;C:\xampp\php

Herhangi bir nedenden dolayı PATH değişkenini silmek istiyorsanız (hiç yol yok veya içindeki tüm yolları silin):

PATH ;

Güncelle

Danial Wilson aşağıdaki yorumda belirtildiği gibi, sadece mevcut oturumda yolunu belirler. Yolu kalıcı olarak ayarlamak için setx işlevini kullanın, ancak mevcut oturumda yolu kalıcı olarak ayarladı, ancak DEĞİLDİR, bu nedenle değişiklikleri görmek için yeni bir komut satırı başlatmalısınız, daha fazla bilgi burada .

Bir çevresel değişkenin var olup olmadığını kontrol etmek veya değerini görmek için ECHO komutunu kullanın:

echo %YOUR_ENV_VARIABLE%
56
zar

PowerShell’in bu döneminde PATH’i şöyle düzenlerdim:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")

Değişkeni tüm kullanıcılar için ayarlamak için, makine genelindeki son satır şöyle olmalıdır:

[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")

Bir PowerShell betiğinde, PATH'a eklemeden önce C:\xampp\php öğenizin olup olmadığını kontrol etmek isteyebilirsiniz (önceden eklenmiş olması durumunda). Bir if koşullu içinde sarabilirsiniz. 

Yani hepsini bir araya getirmek:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
    [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
32
Ifedi Okonkwo

Daha Güvenli SETX

@ Nafscript'in ilk SETX cevabı üzerindeki tüm yorumları onaylayın.

  • SETX, varsayılan olarak user yolunuzu günceller.
  • SETX ... /Msistem yolunuzu günceller.
  • %PATH%, kullanıcı yolu eklenmiş sistem yolunu içerir

Uyarılar

  1. PATH'nuzu yedekleyin - SETX, ıvır zıvırınızı 1024 karakterden uzun keser
  2. Don't call SETX %PATH%;xxx - sistem yolunu kullanıcı yoluna ekler
  3. Don't call SETX %PATH%;xxx /M - kullanıcı yolunu sistem yoluna ekler
  4. Aşırı toplu iş dosyası kullanımı körlüğe neden olabilir1

ss64 SETX sayfası nin çok iyi örnekleri var. Önemlisi, kayıt defteri anahtarlarının SETX - SETX /M için nerede olduğunu gösterir.

Kullanıcı Değişkenleri: 

HKCU\Environment

Sistem Değişkenleri: 

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Kullanım talimatları

Kullanıcıya Ekle PATH

append_user_path.cmd

@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1

Sisteme Ekle PATH

append_system_path.cmd. Yönetici olarak çalıştırılmalıdır.

(Farklı bir Key ve SETX /M değiştiricisi dışında temelde aynıdır)

@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M

Alternatifler

Sonunda, kullanıcı veya sistem ortamı değişkenlerini ayarlayan ss64 SETX sayfası tarafından önerilen SETENV adlı potansiyel olarak geliştirilmiş bir sürüm var.


1. Kesinlikle doğru değil

26
icc97

Partiye geç - ama zaten dizinde iseniz PATH eklemek istediğiniz kullanışlı.

set PATH=%PATH%;%CD%

düzenleme: yorum başına - standart windows cmd ile çalışır ancak powershell'de çalışmaz.

Powershell için %CD% eşdeğeri [System.Environment]::CurrentDirectory şeklindedir.

23
nclord

Ya setx kullanarak yolu yanlış yazarsanız? En iyi yol basitçe pencerelerden geçiyor. Kontrol Paneli-> Tüm Kontrol Paneli Öğeleri-> Sistem-> Gelişmiş Sistem Ayarları-> Çevre Değişkenleri

Aşağıya ilerleyin ve Düzenle'yi seçin. Ayrıca, en sevdiğiniz düzenleyiciye kopyalayıp yapıştırabilir, böylece yolun tamamını görebilir ve daha kolay düzenleyebilirsiniz.

19
Thomas Fonseca
  • komut satırı değişiklikleri kalıcı olmayacak, konsol kapandığında kaybedilecek.
  • İlk önce yol çalışması ilk önce gelir. 
  • Zaten dahil olan diğer çalıştırılabilir dosyaları geçersiz kılmak isteyebilirsiniz. Örneğin, yolunuzda zaten başka bir sürüm varsa ve yolda kalıcı bir değişiklik yapmadan farklı sürüm eklemek istiyorsanız, dizini komutun başına getirmelisiniz.

Zaten dahil olan çalıştırılabilir dosyaları geçersiz kılmak için; 

set PATH = C:\xampp\php;% PATH%;

3
hevi

Tüm cevapların yanı sıra, Windows ortam değişkenlerinizi düzenlemek için güzel bir GUI aracı istiyorsanız Rapid Environment Editor kullanabilirsiniz.

dene! kullanımı güvenli ve harika!

http://www.rapidee.com/en/

2
Mp de la Vega

Yukarıdaki önerileri Windows 10 LTSB’de ve “yardım” ana hatlarını (cmd'ye 'komut /?' Yazarken görülebilir) bir miktar göz atmak suretiyle) kontrol etmek beni PATH komutunun değiştirdiği sonucuna getirdi. sistem ortamı değişkeni Path değerleri yalnızca geçerli oturum için, ancak yeniden başlattıktan sonra tüm değerleri tıpkı PATH komutunu kullanmadan önce olduğu gibi varsayılan değerlerine sıfırlar.

Öte yandan, SETX komutunu yönetici ayrıcalıklarıyla kullanmak çok daha güçlüdür, bu değerleri iyi için değiştirir (ya da en azından bu komut bir dahaki sefere kadar veya bu değerler manüel olarak GUI manipüle edilene kadar ...).

Ancak netlik adına, burada en iyi SETX sözdizimi kullanımını paylaşmanın benim için işe yarayan bir gün birine yardım edebileceğini düşündüm:

SETX PATH "%PATH%;C:\path\to\where\the\command\resides"

'=' herhangi bir eşit işaretten kaçınılması gereken yerlerde, ve. Daha fazla tırnak işareti koymaya gerek yok, içinde boşluklar bulunan bir yol. işi yap.

SETX'i izleyen PATH anahtar sözcüğü, Sistem Ortam Değişkenleri olası değerleri arasında hangi değer kümesinin değiştirilmesi gerektiğini tanımlar ve tırnak işaretlerinin içindeki% PATH% (yüzde işaretiyle çevrili Word PATH), işletim sisteminden mevcut durumdan çıkmasını söyler. PATH değerleri olduğu gibi ve aşağıdaki değerleri (';' işaretini izleyen işareti) varolan değerlere ekleyin.

HTH

1
such_ke_nasdeeq

Nokta 2 ile ilgili olarakPATH veya benim için diğer ortam değişkenlerini dolduran basit bir toplu iş dosyası kullanıyorum. Bu nedenle, varsayılan olarak çevre değişkenleri kirliliği yoktur. Bu toplu iş dosyasına her yerden erişilebilir, bu nedenle şunu yazabilirim:

c:\>mybatchfile
-- here all env. are available
c:\>php file.php
1
Grzegorz Gajos

Komut İsteminde, Cmd'ye Explorer'in komut satırını start ile önceden seçerek kullanmasını söyleyin.

Yani start Yourbatchname.

Unutmayın, adı batchfile.exe.

Programlar ve belgeler kayıt defterine eklenebilir, böylece Başlat - Çalıştır iletişim kutusuna veya kısayoluna yollarını yazmadan adları girerek Windows'un bunları bulmasını sağlar.

Bu genel bir reg dosyasıdır. Aşağıdaki satırları yeni bir Metin Belgesine kopyalayın ve bunu anyname.reg olarak kaydedin. Programlarınız veya belgelerinizle düzenleyin.

Yollarda, anahtar yollardaki klasör adlarını ayırmak için\kullanın, çünkü regedit, anahtar adlarını ayırmak için tek bir\kullanır. Tüm reg dosyaları REGEDIT4 ile başlar. Noktalı virgül bir çizgiyi yoruma dönüştürür. @ Sembolü, değeri adlandırılmış bir değer yerine anahtara atamak anlamına gelir.

Dosya var olmak zorunda değildir. Bu, Word.exe'yi Winword.exe dosyasını açacak şekilde ayarlamak için kullanılabilir.

start batchfile yazarak iexplore.exe başlayacaktır.

REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension> 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]

;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".

@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

;Informs the Shell that the program accepts URLs.

;"useURL"="1"

;Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"

Size zaten başka bir cevapta yol hakkında bilgi verildi. Ayrıca cmd makroları için doskey /? 'a bakın (sadece yazarken çalışırlar).

CMD için başlangıç ​​komutlarını çalıştırabilirsiniz. Windows Kaynak Seti Teknik Referansı'ndan

AutoRun  

HKCU\Software\Microsoft\Command Processor 

Data type Range Default value 
REG_SZ  list of commands  There is no default value for this entry.  

Açıklama

Cmd.exe'yi her başlattığınızda yürütülen komutları içerir.

0
user6017774
  1. O zaman PHP yükledim. Çıkarılan php-7 ***. Zip içine C:\php \
  2. Mevcut PATH ortam değişkenimi yedekle: cmd komutunu çalıştırın ve komutu yürütün: path >C:\path-backup.txt

  3. Geçerli yolumun değerini C:\path.txt dosyasına (aynı şekilde) alın

  4. Path.txt dosyasını değiştir (elbette, yol uzunluğum 1024 karakterden fazla, pencereler birkaç yıl çalışıyor)
    • Orada yinelenen yolları kaldırdım. 'C:\Windows; veya C:\Windows\System32; veya C:\Windows\System32\Wbem; - İki kez yaptım.
    • Kaldırılan programların yollarını da kaldırın. Örnek: C:\Program Dosyaları\NonExistSoftware;
    • Bu şekilde, benim yolumun uzunluğu <1024 :)))
    • yol dizgesinin sonuna şunu ekleyin; C:\php \
    • Kopya yalnızca yol değeri çerçeveli çift tırnak ile tampon içine! Örnek: "C:\Windows; ****; C:\php \" Hayır YOL = orada olmalı!!!
  5. Yönetici olarak Windows PowerShell'i açın.
  6. Çalıştır komutu:

setx path "Here you should insert string from buffer (new path value)"

  1. Terminalinizi tekrar çalıştırın ("Uzak yönetici" kullanıyorum) ve kontrol edin: php -v
0
Serb

gtools adresinden yamalı

işleri sezgisel bir şekilde yapar, örneğin:

pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"

ve sonuçları gösterir yeni bir cmd oluşturmaya gerek kalmadan !

0
womd

Kontrol Paneline daha iyi bir alternatif, bu ücretsiz programı Pathenator adlı sourceforge programından kullanmaktır:

https://sourceforge.net/projects/pathenator/

Ancak, yalnızca Windows 7,8 veya 10 gibi Dot.Net 4.0 veya daha yüksek olan bir sistem için çalışanlar.

0
Bill Moore

cmd komutunu çalıştırırsanız, o komut penceresi için tüm sistem değişkenlerini günceller.

0
RBXII3