Windows(バージョン10など)では、次のコマンドを使用して環境変数を一覧表示できます
set
すべてのユーザーに対して同じである環境変数だけ、または現在のユーザーまたはセッションのための環境変数だけをどのようにリストしますか?
状況は、マイクロソフトが時々見かけるよりも少し複雑です。
環境変数の多くはレジストリに保存されています。つまり、reg
コマンドを使用してクエリを実行できます
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
setx variable value
コマンドを使用して独自の環境変数を永続的に設定した場合、それはレジストリに保存されますが、すぐには利用できません。
C:\>setx test removeme
SUCCESS: Specified value was saved.
C:\>reg query "HKCU\Environment"
HKEY_CURRENT_USER\Environment
Path REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
test REG_SZ removeme
set variable=value
コマンドを使用すると、変数はすぐに使用できますが、レジストリには保存されません。 reg
で表示されますが、set
コマンドを使用してそれらをリストすることはできません。これらの一時的な環境変数は、コマンドプロンプトセッションを終了した後は保持されません。
この方法でレジストリに格納されない環境変数のように機能する構成体があります。例えば:
echo %TIME%
バッチコマンドを入力します:echo%temp%
「temp」環境変数に「H:\ Users\amacm\AppData\Local」が含まれている場合、Windowsはすぐに次のように応答します。
H:\ Users\amacm\AppData\Local
「temp」という名前の環境変数がない場合、Windowsは次のように応答します。
%temp%
余分な行や空白のないきれいな出力を得るには、_cmd.exe
_で次のコマンドを使用します。
ユーザー環境変数:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I
グローバル(システム)環境変数:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I
Windows 7-10で動作し、おそらく以前のバージョンでも動作します。