環境変数を一覧表示する

なんかGUI*1でシステム環境変数を表示させようとすると激しくめんどくさいので、スクリプトを書いてみた。

'ユーザ環境変数を列挙する
Set sh = CreateObject("WScript.Shell")
Set env = sh.Environment("USER")
For Each e In env
  s = s & e & vbNewLine
Next
WScript.Echo s
'システム環境変数を列挙する
Set sh = CreateObject("WScript.Shell")
Set env = sh.Environment("SYSTEM")
For Each e In env
  s = s & e & vbNewLine
Next
WScript.Echo s

てきとうな名前(拡張子はvbsで)で保存する。ダブルクリックでも起動できるけど、それだとコピペできないので、cscriptから起動した方が吉。

C:\Users\USER>cscript //nologo userEnv.vbs
TEMP=%USERPROFILE%\AppData\Local\Temp
TMP=%USERPROFILE%\AppData\Local\Temp

C:\Users\USER>cscript //nologo sysEnv.vbs
ComSpec=%SystemRoot%\system32\cmd.exe
FP_NO_HOST_CHECK=NO
OS=Windows_NT
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Fi
les\Intel\WiFi\bin\;c:\Program Files\Common Files\Lenovo;C:\Program Files\ThinkP
ad\ConnectUtilities\;C:\Program Files\Lenovo\Client Security Solution;C:\Program
 Files\Common Files\Ulead Systems\MPEG
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
TEMP=%SystemRoot%\TEMP
TMP=%SystemRoot%\TEMP

GUIの設定画面と同じものが表示されるっぽい。ただ、setコマンドを打つと ALLUSERSPROFILE=C:\ProgramData とかも表示されるんだけど、これらがどこで定義されているのかが謎。(GUIの設定画面にも出てこない)

*1:手元の環境だと[システムのプロパティ]→[詳細設定]→[環境変数]だった