Muszę ustawić zmienneśrodowiskowe na różnych komputerach z systemem Windows, ale nie chcę, aby przeszkadzało mi to ich ręczne zmienianie, przechodząc do ekranu właściwości "Mój komputer"
Chcę to zrobić z wiersza poleceń za pomocą pliku wsadowego. O ile rozumiem, użycie set zmieni tylko zmienną dla procesów, które wywołam w oknie poleceń.
Chcę to zdecydowanie ustawić, więc później, podczas uruchamiania nowego procesu, użyje nowych ustawień, które ustawiłem. Czy jest na to sposób z poziomu wiersza poleceń?
Odpowiedzi:
Użyj polecenia SETX (zwróć uwagę na przyrostek „x”), aby ustawić zmienne, które pozostają niezmienione po zamknięciu okna cmd.
Na przykład, aby ustawić zmienną env „foo” z wartością „bar”:
Chociaż warto przeczytać `` notatki '', które są wyświetlane, gdy drukujesz użycie (
setx /?
), w szczególności:W programie PowerShell polecenie [Environment] :: SetEnvironmentVariable .
źródło
[Environment]::SetEnvironmentVariable('PATH', "Whatever you need it to be", "Machine")
zobaczyć msdn.microsoft.com/en-us/library/96xafkes(v=vs.110).aspxDokumentacja MSDN dotycząca zmiennych środowiskowych zawiera instrukcje, co należy zrobić:
Aby to zrobić, będziesz oczywiście potrzebować uprawnień administratora. Nie znam sposobu na rozgłaszanie wiadomości systemu Windows z partii systemu Windows, więc musisz napisać mały program, aby to zrobić.
źródło
setx
poniżej?źródło
setx
(i bez możliwości instalacji). Proste użycie (w moim przypadku):wsh.Environment("user").Item("myVar") = "my value"
Rzeczywiście SET TEST_VARIABLE = wartość działa tylko dla bieżącego procesu, więc
SETX
jest wymagana. Szybki przykład trwałego przechowywania zmiennej środowiskowej na poziomie użytkownika.SETX TEST_VARIABLE etc
. Jeszcze nie zastosowano (echo %TEST_VARIABLE%
programy%TEST_VARIABLE%
,echo %TEST_VARIABLE%
pokazujeetc
.etc
.źródło
źródło