Szukam wygodnego sposobu dodawania i / lub modyfikowania i / lub usuwania zmiennej środowiskowej z wiersza poleceń. Szczególnie czasami znajduję się w sytuacjach, gdy muszę dodać kilka zmiennych w cmd.exe.
Byłbym wdzięczny, gdyby ktoś pokazał mi sposób inny niż GUI do modyfikowania (tj. Dodawania nowego katalogu) %PATH%
zmiennej.
Zmiana powinna być trwała, nie tylko na czas trwania cmd
sesji.
command-line
environment-variables
René Nyffenegger
źródło
źródło
Odpowiedzi:
Metoda Old School bezpośredniego manipulowania zmiennymi rejestru za pomocą polecenia reg polegała na użyciu pieniędzy. Oto jak to zrobić:
Rzuć to do skryptu o jednej linii o nazwie apath.bat, który wygląda następująco:
Następnie wystarczy podać ścieżkę nowego katalogu dodawanego podczas wywoływania skryptu i wybierania numeru:
np .: apath.bat% addonpath%
Chociaż Hinch ma rację. Najlepszym sposobem, aby to zrobić, jeśli używasz systemu Vista lub nowszego, jest użycie polecenia SETX, które pozwala nam propagować zmienne środowiskowe bez ryzyka bezpośredniego manipulowania rejestrem za pomocą polecenia reg, które może uratować komputer, jeśli manipulujesz zmiennymi ENV na tyle, aby używać ich w locie.
źródło
Możesz użyć setx.
Zmienna użytkownika:
Zmienna systemowa:
źródło
echo %PATH%
, widzisz je połączone razem, jak<system path>;<user path>
. Zatem pierwsze polecenie wymusi pojawienie się bieżących elementów ścieżki systemowej na ścieżce użytkownika (co nie jest takie złe), a drugie polecenie spowoduje pojawienie się bieżących elementów ścieżki użytkownika na ścieżce systemowej (co jest niedopuszczalne).Możesz użyć
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
klucza rejestru, aby wskazać plik wsadowy, aby umożliwić ci dokonywanie półtrwałych zmian bez zagłębiania się w tajemnicze okna dialogowe ustawień.źródło
Jeśli nie chcesz używać GUI (jak w Panelu sterowania, System, Zaawansowane, Zmienne środowiskowe, ŚCIEŻKA), prawdopodobnie możesz użyć
REG
do ustawieniaHKCU\Environment\PATH
.%PATH%
REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f
Te
/f
siły nadpisywanie istniejących wartości, dzięki czemu nie trzeba interaktywnie odpowiedzieć na pytanie.Edycja:
%PATH%
należy zacytować.Edycja: Warto również zauważyć, że prawdopodobnie wymaga to ponownego uruchomienia lub ponownego zalogowania, zanim zacznie obowiązywać. Podczas zmiany w GUI obowiązuje natychmiast (dla nowych
cmd.exe
sesji).Odniesienie: http://support.microsoft.com/kb/104011
Jak wspomniano w odnośniku, jeśli chcesz napisać kod, możesz wysłać WM_SETTINGCHANGE, co powinno uniknąć wymogu logowania / wylogowania.
źródło
REG QUERY HKCU\Environment /v PATH
.Łatwo jest zmienić ścieżkę w bieżącym procesie cmd.exe:
Zawsze możesz zrobić HELP PATH, aby uzyskać pomoc dotyczącą polecenia PATH.
źródło
W celu uzyskania naprawdę trwałych zmian w całym systemie, naprawdę chcesz użyć panelu sterowania systemu (inaczej Mój komputer -> Właściwości -> Zaawansowane -> Zmienne środowiskowe, dla WinXP). Ustawienia wpływają na cały system, w tym programy GUI w powłoce Explorer.
Jeśli potrzebujesz tylko tych zmian w
cmd.exe
powłoce, możesz uruchomić plik wsadowy, który je ustawia przy każdym uruchomieniu okna cmd.exe. Odpowiedź Phoshi wspomina oHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
, co wydaje się doskonałą opcją - łatwo wprowadzić niewielkie zmiany i w razie potrzeby ponownie uruchomić z wiersza poleceń. Ale to nie wpłynie na okna GUI lub powłokę Eksploratora.Tak naprawdę jestem zaskoczony, że Sysinternals nie ma odpowiedniego narzędzia, aby to zrobić. Może może to zrobić inny PStools ?
źródło
Jest na to wiele sposobów. REG ADD to jeden lub REG IMPORT (przy użyciu wyeksportowanego pliku .REG z innego komputera). SETX / M to kolejny. Możesz go również wypchnąć, korzystając z Preferencji zasad grupy (najbardziej praktyczny i najprostszy sposób dla dużej liczby komputerów)
źródło
Kolejna myśl, o której tu nie wspomniano, utwórz skrypt automatycznego klucza, który uruchomi panel sterowania i wprowadzi go dla Ciebie. Działa dobrze, jeśli jesteś już użytkownikiem AHK :-)
https://autohotkey.com/board/topic/63210-modify-system-path-gui/
A co z edycją hklm / system / currentcontrolset001 / control / session manager / environment: path key? Ale ten sam klucz znajduje się w hklm / system / currentcontrolset002 i hklm / system / currentcontrolset. Wygląda na to, że może to być poprawne, tutaj: /programming/3304463/how-do-i-modify-the-path-environment-variable-when-unning -an-inno-setup-install
źródło