Ustawianie i pobieranie zmiennych środowiskowych systemu Windows z wiersza polecenia?


220

Chcę ustawić zmienną środowiskową z wiersza polecenia, a następnie móc uzyskać do niej dostęp globalnie (na przykład powinienem ją zobaczyć, przechodząc do opcji System -> Zmienne środowiskowe).

Kiedy używam polecenia set, nie jest on dostępny w nowej sesji cmd.

set NEWVAR=SOMETHING
echo %NEWVAR%

Powiązane pytania:


1
Wartość zmiennej setx - następnie ponownie uruchom wiersz polecenia
Andrew,

Odpowiedzi:


252

Aby zmienna środowiskowa była dostępna globalnie, musisz ustawić ją w rejestrze. Jak zauważyłeś, po prostu używając:

ustaw NEWVAR = COŚ

po prostu ustawiasz go w bieżącej przestrzeni procesu.

Zgodnie z tą stroną możesz użyć setxpolecenia:

setx COŚ NEWVAR

setxjest wbudowany w system Windows 7, ale w starszych wersjach może być dostępny tylko po zainstalowaniu zestawu Windows Resource Kit


4
Pamiętaj, że musisz określić limit, na przykład: setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_45"będzie działać. Ale setx JAVA_HOME C:\Program Files\Java\jdk1.7.0_45da ci błędy składniowe
MD. Mohiuddin Ahmed

5
@ MD.MohiuddinAhmed To dlatego, że na ścieżce są spacje.
ChrisF,

36

Możemy również użyć „setx var zmienna / M”, aby ustawić var ​​na poziom zmiennej środowiskowej systemu zamiast na poziom użytkownika.

Uwaga: To polecenie należy uruchomić jako administrator.


10
setx program "C:\Program Files" /M

/ M dla ustawienia poziomu zmiennej środowiskowej systemu zamiast poziomu użytkownika, np. Odpowiedź @Minh Chau

Test wprowadź opis zdjęcia tutaj

Linia komend RESTART (jeśli nie zrestartujesz linii komend, zmienna środowiskowa nie będzie działać)

wprowadź opis zdjęcia tutaj


To powiela inną odpowiedź i nie dodaje żadnej nowej treści. Nie publikuj odpowiedzi, chyba że masz coś nowego do dodania.
DavidPostill

8
@DavidPostill moja odpowiedź ma nowy to potrzebujemy restartu wiersza poleceń. Myślę, że to ważne
Phan Van Linh

2

Możesz użyć, setx env var [/M]jak wspomniano powyżej. Jeśli to nie zadziała, możesz użyć refreshenvdo odświeżenia zmiennych środowiskowych. Aby to zrobić, nie musisz ponownie uruchamiać komputera, explorer.exe ani wiersza polecenia.

Edycja: wyraźne odświeżenie nie pojawia się naturalnie w systemie Windows, więc oto źródło: https://pastebin.com/1fJqA0pT
Zapisz jako RefreshEnv.cmd i umieść go w folderze zawartym w zmiennych środowiskowych PATH


1
+1 za wzmiankę o „refreshenv” - nigdy wcześniej tego nie spotkałem!
Francis Norton

1

Zmienne systemowe można ustawić za pomocą CMD i rejestru Na przykład zapytanie reg „HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment” / v ŚCIEŻKA

Wszystkie powszechnie używane kody CMD i zmienne systemowe podano tutaj: Ustaw zmienne środowiskowe systemu Windows za pomocą CMD .

Otwórz CMD i wpisz Set

Otrzymasz wszystkie wartości zmiennej systemowej.

Wpisz set java, aby poznać szczegóły ścieżki Java zainstalowanej w systemie operacyjnym Windows.


Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie.
DavidPostill

Jednak jest blisko. Korzystanie z REG ADD może to osiągnąć?
TOOGAM,

0

Chcę dodać, że jeśli używasz parametru / s z setx w celu ustawienia zmiennych środowiskowych na komputerze zdalnym, usługa „Rejestr zdalny” musi być uruchomiona na komputerze docelowym, w przeciwnym razie pojawi się komunikat „BŁĄD: nie można ukończyć określonej operacji. ”

(Poprosiłem Microsoft o aktualizację artykułu TechNet na temat setx, aby uwzględnić te informacje).

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.