Ustawianie systemowej zmiennej środowiskowej z pliku wsadowego systemu Windows?


195

Czy można ustawić zmienną środowiskową na poziomie systemu z wiersza polecenia w systemie Windows 7 (a nawet XP w tym przypadku). Korzystam z wiersza polecenia z podwyższonym poziomem uprawnień.

Kiedy używam setpolecenia ( set name=value), zmienna środowiskowa wydaje się być poprawna tylko dla sesji wiersza polecenia.

Odpowiedzi:


179

Narzędzia obsługi XP (które można zainstalować z dysku CD XP) są dostarczane z programem o nazwie setx.exe:

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

Myślę, że system Windows 7 faktycznie jest dostarczany setxjako część standardowej instalacji.


7
Windows 7 (może już Vista) ma standard Setx, z niewielką zmianą? nie ma -iflagi, a po prostu setx /?wyświetla całą pomoc + przykłady
— stijn

3
Pamiętaj, że zawsze możesz sprawdzić, czy masz ten program na swojej ścieżce, wpisując, wherea następnie nazwę programu (więc w tym przypadku where setx.exepodczas testowania tego na serwerze Server 2008 i Server 2008SP2 stwierdziłem, że w obu przypadkach istniał w%windir%\System32\setx.exe
— aolszowka

2
@stijn - Wersja Win7 również oficjalnie zmieniła wprowadzający flagę z -przedniego ukośnika /. Wygląda jednak na to, że -wersja nadal działa.
— TED,

2
Wydaje się, że istnieje ograniczona długość 1024 zawartości zmiennej
— setx

Setx udostępniony przez XP Support Tools Tools wymaga ukośnika do przodu /i myślnik -nie działa. setx variable value /m
— Keith,

137

Prosty przykład, jak ustawić JAVA_HOME setx.exew wierszu poleceń:

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Spowoduje to ustawienie zmiennej środowiskowej „JAVA_HOME” dla bieżącego użytkownika. Jeśli chcesz ustawić zmienną dla wszystkich użytkowników, musisz użyć opcji „-m”. Oto przykład:

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Uwaga : musisz wykonać to polecenie jako Administrator.

Uwaga : Upewnij się, aby uruchomić polecenie setx z poziomu okna administracyjnego wiersza polecenia


7
Zauważ też, że niektóre narzędzia nie lubią spacji w JAVA_HOME, więc warto użyć Progra~1takiego: setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"
— samael

1
Gdzie to było przez całe moje życie.
— Philip Rego

20

Jeśli ustawisz zmienną za pomocą SETX, nie możesz użyć tej zmiennej ani jej zmian natychmiast. Musisz ponownie uruchomić procesy, które chcą z niego skorzystać.

Skorzystaj z następującej sekwencji, aby bezpośrednio ustawić ją również w procesie ustawiania (działa dla mnie idealnie w skryptach, które wykonują pewne czynności inicjujące po ustawieniu zmiennych globalnych) :

SET XYZ=test
SETX XYZ test

Dziękuję, to doprowadzało mnie do szału! CMD.EXE potrzebuje desperacko aktualizacji, aby zachowywać się jak zwykła konsola ...!
— Salvador Valencia,

Nie rozumiem tego: gdzie mam uruchomić te 2 linie?
— Danijel

1
Możesz także wykonać polecenie refreshenvpo użyciu setx, aby skorzystać z nowych zmiennych.
— BrianHVB

@BrianHVB refreshenvnie został rozpoznany jako polecenie. Robisz to w cmdlub powershell? (EDYCJA: przetestowana w obu przypadkach, nie działa w żadnej konsoli)
— bigp

@bigp ups, masz rację. Jest to polecenie dodawane po zainstalowaniu Chocolatey. Mam czekoladki na wszystkich moich systemach i nie zdawałem sobie sprawy, dopóki nie sprawdziłem.
— BrianHVB

2

W przypadku XP użyłem narzędzia (darmowego / darowizny) o nazwie „RAPIDEE” (Rapid Environment Editor), ale SETX jest zdecydowanie wystarczający dla Win 7 (wcześniej o tym nie wiedziałem).


2

Zmienne systemowe można ustawić za pomocą CMD i rejestru Na przykład reg zapytanie „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.


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.