Próbuję dodać C:\xampp\php
do mojej systemowej PATH
zmiennej środowiskowej w systemie Windows.
Dodałem go już za pomocą okna dialogowego Zmienne środowiskowe.
Ale kiedy piszę w konsoli:
C:\>path
nie wyświetla nowego C:\xampp\php
katalogu:
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
Mam dwa pytania:
- Dlaczego się to stało? Czy coś zrobiłem źle?
- Ponadto, jak dodać katalogi do mojej
PATH
zmiennej za pomocą konsoli (i programowo, z plikiem wsadowym)?
windows
command-line
path
environment-variables
Netorica
źródło
źródło
Odpowiedzi:
To tylko modyfikuje rejestr. Istniejący proces nie użyje tych wartości. Nowy proces zrobi to, jeśli zostanie uruchomiony po tej zmianie i nie odziedziczy starego środowiska po rodzicu.
Nie określono sposobu rozpoczęcia sesji konsoli. Najlepszym sposobem, aby to zapewnić, jest zamknięcie powłoki poleceń i ponowne uruchomienie. Następnie powinien odziedziczyć zaktualizowaną ŚCIEŻKĘ.
źródło
WM_SETTINGCHANGE
wiadomość została wysłana z aplikacji? stackoverflow.com/a/8358361opcja 1
Po zmianie
PATH
za pomocą GUI zamknij i ponownie otwórz okno konsoli.Działa to, ponieważ tylko programy uruchomione po zmianie zobaczą nowy
PATH
.Opcja 2
Wykonaj to polecenie w otwartym oknie poleceń:
To polecenie dołącza
C:\your\path\here\
do bieżącegoPATH
.Podział:
set
- Polecenie zmieniające zmienne środowiskowe cmd tylko dla bieżącej sesji cmd ; inne programy i system pozostają nienaruszone.PATH=
- Oznacza, żePATH
zmienna środowiskowa ma zostać tymczasowo zmieniona.%PATH%;C:\your\path\here\
-%PATH%
Część rozwija się do bieżącej wartościPATH
, a;C:\your\path\here\
następnie zostaje z nią połączona. To staje się nowePATH
.źródło
Można na stałe dodać ścieżkę
PATH
zsetx
poleceniem:Usuń
/M
flagę, jeśli chcesz ustawić użytkownikaPATH
zamiast systemuPATH
.Uwagi:
setx
Polecenie jest dostępne tylko w systemie Windows 7 i nowszych.Należy uruchomić to polecenie z wiersza polecenia z podwyższonym poziomem uprawnień.
Jeśli chcesz to zmienić tylko dla bieżącej sesji, użyj set .
źródło
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
ustawić wartość PATH na poziomie maszyny%PATH%
zmiennej to polecenie łączy globalne zmienne env ze zmiennymi użytkowników. Prawda? Może to powodować niepożądane skutki uboczne, szczególnie z przełącznikiem / M%PATH%
zmienna nie może być zsynchronizowane ze zmiennych środowiskowych, jak to jest ładowany przy uruchomieniu wiersza polecenia i nigdy potem przeładowane (nawet podczas wykonywania polecenia setx). Można to również zmienić lokalnie przez wcześniej wykonane skrypty.Nie potrzebujesz żadnych poleceń
set
anisetx
poleceń, po prostu otwórz terminal i wpisz:To pokazuje aktualną wartość zmiennej PATH. Teraz chcesz dodać do niego katalog? Po prostu wpisz:
Jeśli z jakiegokolwiek powodu chcesz wyczyścić zmienną PATH (żadnych ścieżek lub usunąć wszystkie ścieżki w niej), wpisz:
Aktualizacja
Jak zauważył Danial Wilson w komentarzu poniżej, ustawia ścieżkę tylko w bieżącej sesji. Aby ustawić ścieżkę na stałe,
setx
ale pamiętaj, chociaż ustawia ona ścieżkę na stałe, ale NIE w bieżącej sesji, więc musisz uruchomić nowy wiersz poleceń, aby zobaczyć zmiany, więcej informacji tutaj .Aby sprawdzić, czy istnieje zmienna środowiskowa lub zobaczyć jej wartość, użyj polecenia ECHO:
źródło
PATH %PATH%;C:\Program Files\...
zamiastPATH "%PATH%;C:\Program Files\..."
Zamiast tego użyłbym PowerShell!
Aby dodać katalog do PATH za pomocą programu PowerShell, wykonaj następujące czynności:
Aby ustawić zmienną dla wszystkich użytkowników, na całym komputerze, ostatni wiersz powinien wyglądać tak:
W skrypcie PowerShell możesz sprawdzić jego obecność
C:\xampp\php
przed dodaniem do PATH (w przypadku, gdy został wcześniej dodany). Możesz zawinąć to wif
warunkowe.Podsumowując:
Co więcej, można stworzyć funkcję ogólną. Po prostu podaj katalog, który chcesz dodać:
Możesz poprawić sytuację, polerując. Na przykład przy użyciu
Test-Path
do potwierdzenia, że Twój katalog faktycznie istnieje.źródło
SetEnvironmentVariable
zMachine
parametrem musisz otworzyć PowerShell z uprawnieniami administratora$env:userprofile
.user
lubmachine
w zaproszeniuGetEnvironmentVariable
. W przeciwnym razie$PATH
będzie zawierać zarówno wartość rejestru dla użytkownika, jak i komputera, która niepotrzebnie wysadzi zmienną ścieżki podczas jej ponownego przechowywania.Bezpieczniejszy SETX
Kiwnij głową na wszystkie komentarze na temat Kiwnij głową na początkowej
SETX
odpowiedzi @ Nafscript .SETX
domyślnie zaktualizuje ścieżkę użytkownika .SETX ... /M
zaktualizuje ścieżkę systemową .%PATH%
zawiera ścieżkę systemową z dołączoną ścieżką użytkownikaOstrzeżenia
PATH
-SETX
spowoduje obcięcie śmieci na więcej niż 1024 znakiSETX %PATH%;xxx
- dodaje ścieżkę systemową do ścieżki użytkownikaSETX %PATH%;xxx /M
- dodaje ścieżkę użytkownika do ścieżki systemowejStrona SETX ss64 ma kilka bardzo dobrych przykładów. Co ważne, wskazuje, gdzie są klucze rejestru dla
SETX
vsSETX /M
Instrukcje użytkowania
Dołącz do użytkownika
PATH
append_user_path.cmd
Dołącz do systemu
PATH
append_system_path.cmd
. Musi być uruchomiony jako administrator.(jest w zasadzie taki sam, z wyjątkiem innego
Key
iSETX /M
modyfikatora)Alternatywy
Wreszcie istnieje potencjalnie ulepszona wersja o nazwie SETENV zalecana przez stronę SETX ss64, która dzieli ustawienia zmiennych środowiskowych użytkownika lub systemu.
1. Nie do końca prawda
źródło
Późno na imprezę - ale przydatne, jeśli jesteś już w katalogu, który chcesz dodać do PATH.
set PATH=%PATH%;%CD%
edycja: jak na komentarz - działa ze standardowym Windows cmd, ale nie w PowerShell.
W przypadku PowerShell
%CD%
odpowiednikiem jest[System.Environment]::CurrentDirectory
źródło
[System.Environment]::CurrentDirectory
Oprócz wszystkich odpowiedzi, jeśli chcesz ładne narzędzie GUI do edycji zmiennych środowiskowych systemu Windows, których możesz użyć Rapid Environment Editor
Spróbuj! jest bezpieczny w użyciu i niesamowity!
http://www.rapidee.com/en/
źródło
Aby zastąpić już zawarte pliki wykonywalne;
źródło
Sprawdzenie powyższych sugestii w systemie Windows 10 LTSB i spojrzenie na kontury „pomocy” (które można wyświetlić po wpisaniu polecenia /? Na cmd) doprowadziły mnie do wniosku, że polecenie PATH zmienia zmienną środowiskową systemu Wartości ścieżek tylko dla bieżącej sesji, ale po ponownym uruchomieniu wszystkie wartości resetują się do wartości domyślnych - podobnie jak przed użyciem polecenia PATH.
Z drugiej strony użycie polecenia SETX z uprawnieniami administracyjnymi jest o wiele bardziej wydajne, zmienia te wartości na dobre (lub przynajmniej do następnego użycia tego polecenia lub do następnego użycia tych wartości ręcznie w GUI ...).
Ale dla jasności pomyślałem, że dzielenie się tutaj najlepszym użyciem składni SETX, które działało dla mnie, może komuś pomóc:
gdzie należy unikać wszelkich znaków równości „=” i nie martw się spacjami! nie ma potrzeby wstawiania żadnych cudzysłowów dla ścieżki zawierającej spacje - znak podziału ';' wykonuj robotę.
Słowo kluczowe PATH występujące po SETX określa, który zestaw wartości powinien zostać zmieniony pomiędzy możliwymi wartościami zmiennych środowiska systemowego, a% PATH% (słowo PATH otoczone znakiem procentu) wewnątrz cudzysłowów informuje system operacyjny o pozostawieniu istniejącego Wartości PATH takimi, jakie są, i dodaj następującą ścieżkę (tę, która następuje po znaku podziału „;”) do istniejących wartości.
HTH
źródło
Odnośnie do punktu 2 używam prostego pliku wsadowego, który się zapełnia
PATH
lub innych zmiennych środowiskowych dla mnie. Dlatego domyślnie nie ma zanieczyszczenia zmiennymi środowiskowymi. Ten plik wsadowy jest dostępny z każdego miejsca, więc mogę wpisać:źródło
source
taki plik, na przykład. mybatchfile
).W wierszu polecenia informujesz Cmd, aby używał wiersza polecenia Eksploratora, zastępując go znakiem
start
.Tak
start Yourbatchname
.Uwaga: musisz się zarejestrować, jakby nazywał się
batchfile.exe
.Programy i dokumenty można dodawać do rejestru, więc wpisanie ich nazwy bez ścieżki w oknie dialogowym Start - Uruchom lub skrót umożliwia Windowsowi ich odnalezienie.
To jest ogólny plik reg. Skopiuj poniższe wiersze do nowego dokumentu tekstowego i zapisz go jako anyname.reg. Edytuj go za pomocą programów lub dokumentów.
W ścieżkach użyj \ do oddzielenia nazw folderów w ścieżkach kluczy, ponieważ regedit używa pojedynczego \ do rozdzielenia nazw kluczy. Wszystkie pliki reg zaczynają się od REGEDIT4. Średnik zamienia linię w komentarz. Symbol @ oznacza przypisanie wartości do klucza zamiast wartości nazwanej.
Plik nie musi istnieć. Można tego użyć do ustawienia Word.exe w celu otwarcia Winword.exe.
Pisanie
start batchfile
rozpocznie się iexplore.exe.W innej odpowiedzi powiedziano ci już o ścieżce. Zobacz także
doskey /?
makra cmd (działają tylko podczas pisania).Możesz uruchamiać polecenia uruchamiania dla CMD. Z dokumentacji technicznej zestawu Windows Recource Kit
AutoRun
Opis
Zawiera polecenia, które są wykonywane przy każdym uruchomieniu Cmd.exe.
źródło
Lepszą alternatywą dla Panelu sterowania jest użycie tego darmowego programu od sourceforge o nazwie Pathenator:
https://sourceforge.net/projects/pathenator/
Jednak działa tylko w systemie z Dot.Net 4.0 lub nowszym, takim jak Windows 7,8 lub 10.
źródło
Jeśli uruchomisz polecenie
cmd
, zaktualizuje ono wszystkie zmienne systemowe dla tego okna poleceń.źródło
exit
dwukrotnego połączenia , najpierw zamknięcia nowej, a następnie pierwszej sesji (w starym środowisku).użyj pathed z gtools
robi rzeczy w intuicyjny sposób, np .:
pokazuje wyniki bez potrzeby odradzania nowego cmd !
źródło
Wykonaj kopię zapasową mojej bieżącej zmiennej środowiskowej PATH: uruchom
cmd
i uruchom polecenie:path >C:\path-backup.txt
Pobierz moją bieżącą wartość ścieżki do pliku C: \ path.txt (w ten sam sposób)
setx path "Here you should insert string from buffer (new path value)"
php -v
źródło
Choć może to być banalne, musiałem zrestartować system Windows w obliczu tego problemu.
Korzystam z systemu Windows 7 x64. Zrobiłem ręczną aktualizację zmiennej systemowej PATH. Działa to dobrze, jeśli uruchomię cmd.exe z menu statystyk. Ale jeśli wpiszesz „cmd” w pasku adresu Eksploratora Windows, wydaje się, że ładuje ŚCIEŻKĘ z innego miejsca, które nie zawierało moich ręcznych zmian.
(Aby uniknąć wątpliwości - tak, kilkakrotnie zamknąłem i uruchomiłem cmd przed ponownym uruchomieniem i to nie pomogło.)
źródło