Łatwiejszy sposób zmiany zmiennych środowiskowych w systemie Windows 8? [duplikować]


27

Możliwa duplikat:
Co to jest PATH i inne zmienne środowiskowe i jak mogę je ustawić lub używać?

Wiem, że mogę edytować moje zmienne środowiskowe w Windows 8, przechodząc do

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

Ale szczerze mówiąc, jest to absurdalnie skomplikowane.

Czy istnieje łatwiejszy sposób zmiany zmiennych środowiskowych w systemie Windows 8?

Na przykład, jeśli chcę tylko dołączyć nowy folder do PATH, przejście przez te wszystkie kroki jest naprawdę denerwujące. Interfejs użytkownika jest też do bani, ponieważ edytowanie długich zmiennych przy użyciu niewielkiego tekstu jest naprawdę bolesne.

Wymaganie 1: Potrzebuję zmian, aby zachować (np. Kiedy korzystam setz konsoli, zmiany są tracone po zamknięciu konsoli)

Wymaganie 2: Wolę rozwiązanie, które nie wymaga instalowania dodatkowych elementów oprogramowania, ponieważ jest to problem, na który natrafiam za każdym razem, gdy konfiguruję nowe okno systemu Windows.


Odpowiedzi:


32

Czy znasz komendę set i setx ? Za ich pomocą możesz ustawić trwałą zmienną. Co więcej, wartość zostanie zastosowana natychmiast, a nie po następnym logowaniu.

Przykład SETpolecenia systemu Windows :

Wydrukuj zmienną środowiskową PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Użyj polecenia set, aby ustawić zmienną PATH

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

Powyższe polecenie dotyczy tylko bieżącego okna, a zmiana zostaje utracona po zamknięciu okna cmd.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Przykład SETXpolecenia systemu Windows :

Wydrukuj zmienną środowiskową PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Użyj setx, aby ustawić zmienną środowiskową:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Zamknij i ponownie otwórz terminal cmd, a następnie uruchom:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

Musisz być ostrożny z podwójnymi cudzysłowami. Jeśli wpuścisz cudzysłowy do zmiennej ścieżki, może to coś popsuć. Są one jednak niezbędne do określenia dodatków do pierwotnego% PATH%.


1
Dzięki za wskazówkę! Próbowałem, setx PATH=%PATH%;;C:\testale
pojawia się

2
Podczas używania setx nie ma znaku =. Czy setx /?
EBGreen,

4
Brak argumentów „setx” ustawia zmienną tylko w kontekście użytkownika. Aby ustawić w kontekście systemu, użyj „setx / M”. Nieświadomość tego może cię mylić, ponieważ „echo% PATH%” pokaże wartości systemowe i użytkownika skonkatenowane.
Vituel,

Uwaga: po dokonaniu tej zmiany musisz ponownie uruchomić powłokę, aby mogła ona zostać zastosowana.
Doug

drobna uwaga: set path= ~ echo %PATH% [ set pathpokazuje również wartość PATHEXT]
gerryLowry


4

Zmieniam je w PowerShell. Na przykład, aby dodać folder do zmiennej PATH, otwórz PowerShell, a następnie:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

To zmieniłoby to dla wszystkich użytkowników. Aby zmienić to tylko dla użytkownika uruchamiającego polecenie, zmień ten ostatni parametr na „Użytkownik”. Lub po prostu zmień to tymczasowo w tej sesji:

$env:Path += ';C:\temp'

świetny! jak wykonujesz konkatenację $ env: Path + '; C: \ Temp' w wierszu polecenia? Rozwiązania Set & Setx wyjaśniają tutaj, jak ustawić całą ścieżkę w wierszu polecenia, ale żadne nie wyjaśnia, jak DOŁĄCZYĆ coś do istniejącej ścieżki.
John, dlaczego

Oto jak DODAWAĆ coś do istniejącej ścieżki w wierszu polecenia. / M służy do zmiany zmiennej SYSTEM, a nie zmiennej USER. Cytaty są używane, ponieważ „Mój folder” zawiera spacje: setx ŚCIEŻKA%% ŚCIEŻKA%; C: \ Mój folder ”/ M
johny, dlaczego

Jedynym problemem związanym z używaniem wiersza polecenia jest limit 255 znaków, a PATH systemowy może go przekroczyć (szczególnie jeśli dodajesz więcej katalogów). Dlatego Powershell jest właściwą drogą (mogę się mylić, ale wierzę, że nie ma ograniczenia liczby znaków w Powershell).
John, dlaczego

3

W wierszu poleceń jest dość łatwo:

set MyVar=HelloWorld

(aby przejść do wiersza poleceń, wpisz cmdz ekranu startowego>.)

Aby wyświetlić zmienną:

echo %MyVar%

Użyj, setxaby na stałe ustawić zmienną. Składnia jest nieco inna. Spróbuj zajrzeć tutaj lub istnieje wiele innych stron, które podpowie Ci, jak z niego korzystać.


Tak, dzięki człowieku, wiem to już, ale problem polega na tym, że jeśli wprowadzisz zmiany w ten sposób, nie będą się one utrzymywać - tj. Kiedy zamknę i ponownie otworzę wiersz poleceń, zmienne zostaną przywrócone do wartości domyślnych. Zaktualizowałem moje pytanie, aby to odzwierciedlić - przepraszam.
jsalonen,

Czy wiesz, czy mogę zrobić coś, setco będzie się utrzymywać?
jsalonen

1
setx jest na trwałe zmiany
EBGreen

Czy istnieje sposób, aby ustawić zmienną tylko do następnego ponownego uruchomienia? W przeciwnym razie, jeśli użyję zestawu z innego programu (powiedzmy polecenie systemu operacyjnego z Python lub MATLAB), czy będzie on trwał tak długo, jak długo sesja programu będzie otwarta?
Royi,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.