Wyświetl wszystkie zmienne środowiskowe z wiersza poleceń


932

Czy można wyświetlić wszystkie zmienne środowiskowe z wiersza polecenia systemu Windows?

Coś odpowiadającego PowerShellowi gci env:(lub ls env:lub dir env:).


1
Czy ktoś może udostępnić rozwiązanie PowerShell? To ma być przyszłość. Dobrze?
Bruno Bronosky,

1
@BrunoBronosky rozwiązanie PS jest zawarte w pytaniu, a odpowiedź jest także powtarzana =)
Jon

Opis każdego z nich można znaleźć na stronie ss64.com/nt/syntax-variables.html
Samuel Harmer,

Odpowiedzi:


1352

Po prostu zrób:

SET

Możesz także SET prefixzobaczyć wszystkie zmienne o nazwach zaczynających się od prefix.

Na przykład, jeśli chcesz odczytać tylko derbydb ze zmiennych środowiskowych, wykonaj następujące czynności:

set derby 

... a otrzymasz:

DERBY_HOME=c:\Users\amro-a\Desktop\db-derby-10.10.1.1-bin\db-derby-10.10.1.1-bin

7
To monituje mnie o imię?
CMCDragonkai

53
@KevinMeredith: Wszystkie polecenia w powłoce systemu Windows nie uwzględniają wielkości liter.
Jon

12
@CMCDragonkai używasz programu PowerShell? Wygląda na to, że hikackował zestaw jednym ze swoich poleceń. Jest to jedna z mniej przydatnych funkcji! Zadałem pytanie o wyłączenie tego tutaj
JonnyRaa

2
Czy ktoś może to zaktualizować, aby uwzględnić rozwiązanie PowerShell? To ma być przyszłość. Dobrze?
Bruno Bronosky,

3
@NickTimmer, ponieważ mówisz o bashu zamiast powłoki Windows, jest to dla ciebie złe pytanie / odpowiedź. Patrzeć printenv.
Jon

167

Jon ma właściwą odpowiedź, ale aby rozwinąć nieco więcej cukru syntaktycznego ...

SET | more

pozwala zobaczyć zmienne pojedynczo, a nie całą partię, lub

SET > output.txt

wysyła dane wyjściowe do pliku output.txt, który można otworzyć w Notatniku lub cokolwiek ...


7
nie miałem pojęcia, że moreistnieje na Windowsie, +1
nowy

jest też wbudowany w niektóre funkcje. Na przykład Dir wyświetli stronę z / p.
John Lord,

@ardnew: Teraz wiesz więcej ;-)
user2943111

106

Aby wyświetlić listę wszystkich zmiennych środowiskowych w programie PowerShell:

Get-ChildItem Env:

Lub zgodnie z sugestią user797717, aby uniknąć obcięcia danych wyjściowych:

Get-ChildItem Env: | Format-Table -Wrap -AutoSize

Źródło: Tworzenie i modyfikowanie zmiennych środowiskowych ( wskazówka tygodnia dla programu Windows PowerShell )


4
Nawet jeśli nie używam programu PowerShell, ponieważ nie działa on dla każdej komendy cmd, jest to jedyne rozwiązanie dla ładnego drukowania (na 2 kolumnach) bez dużego wysiłku. Aby osiągnąć to samo zachowanie w cmd, potrzebujesz czegoś takiego, for /f "tokens=1,2 delims==" ...co staje się bardzo skomplikowane ...
ROMANIA_engineer

6
Aby uniknąć obcinania danych wyjściowych, Get-ChildItem Env: | Format-Table -Wrap -AutoSize
użyłbym

1
gci env:zamiast tego Get-ChildItem Env:łatwiej zapamiętać
matson kepson

Doskonały! Nie rozumiem, dlaczego nie jest to najlepsza odpowiedź, aby być szczerym: / EDYCJA: Och, czekaj, rozumiem, dlaczego ... pierwotne pytanie nie dotyczyło tego, jak to zrobić w PowerShell, ale w starej szkole Wiersz polecenia: D
Yoeri Van Nieuwerburg

79

Wystarczy uruchomić setod cmd.

Wyświetla, ustawia lub usuwa zmienne środowiskowe. Polecenie set użyte bez parametrów wyświetla bieżące ustawienia środowiska.


11

Możesz użyć SETw cmd

Aby wyświetlić aktualną zmienną, po prostu SETwystarczy

Aby wyświetlić określone zmienne, takie jak „PATH”, użyj SET PATH.

Aby uzyskać pomoc, wpisz set /?.


2
Czym różni się to od istniejących odpowiedzi?
Peter Mortensen

7

Nie trać czasu. Wyszukaj go w rejestrze:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

zwraca mniej niż polecenie SET.


2
chociaż może to być prawda, jedną różnicą jest to, że zapytanie rejestru zwraca nierozwinięte REG_EXPAND_SZklucze. Na przykład reg query "HKCU\Environment"pokazuje mi, że moja %TEMP%zmienna zależy od wartości %USERPROFILE%, więc jeśli ta wartość się zmieni, to też zmieni się wartość %TEMP%. SET"C:\Users\mpag\AppData\Local\Temp"
Wręcz

1
Dlaczego mówisz „nie trać czasu”? Czy pisanie „set” w wierszu poleceń nie jest szybsze niż „reg query ...”?
Alexandre Huat

4

Jeśli chcesz zobaczyć właśnie ustawioną zmienną środowiskową, musisz otworzyć nowe okno poleceń.

Zmienne ustawione za pomocą zmiennych setx są dostępne tylko w przyszłych oknach poleceń, a nie w bieżącym oknie poleceń. ( Setx, przykłady )


4

Jak wspomniano w innych odpowiedziach, możesz użyć, setaby wyświetlić listę wszystkich zmiennych środowiskowych lub użyć

set [environment_variable] aby uzyskać określoną zmienną z jej wartością.

set [environment_variable]= można użyć do usunięcia zmiennej z obszaru roboczego.


1
Tak, ale jak to odpowiada na pytanie?
Peter Mortensen
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.