【Windows】コマンドでインストール済みのソフト一覧を取得する方法
2015/11/04
コマンド プロンプトでインストール済みのソフト一覧を取得する方法
PCにインストールされているソフト一覧が欲しい時ってありませんか?
そんな時は「reg query」コマンドを使用してレジストリから取得します。
レジストリの場所
インストール済みのソフトは、以下の場所のレジストリに記載されています。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall]上記の場所の各ソフトの「DisplayName」を取得します。
1 2 3 |
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" |
または、
1 2 3 |
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s | findstr "\<DisplayName" |
また、一部のソフトは以下に記述されているため、こちらからも取得します。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall]
1 2 3 |
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" |
64bit OSの場合
64bit OSの場合は、上記にプラスして以下のレジストリから取得します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall]
1 2 3 |
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" |
応用バッチ
上記コマンドを応用して以下のバッチを使えばテキストで保存できます。
※以下のバッチは、ソフト一覧を取得後、「c:\tmp」に「soft.txt」として保存しています。
※エラー処理なし。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
@echo off setlocal rem 「C:\tmp」の存在確認 set TMP_Folder=C:\tmp if not exist "%TMP_Folder%\" ( rem なかったらフォルダ作成 md c:\tmp\ ) rem レジストリからソフト一覧取得 for /f "tokens=2,*" %%I in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s ^| find "DisplayName"') do ( echo %%J >>%TMP_Folder%\soft.txt ) for /f "tokens=2,*" %%I in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s ^| find "DisplayName"') do ( echo %%J >>%TMP_Folder%\soft.txt ) rem 32bit の場合は以下をコメントアウトしてね for /f "tokens=2,*" %%I in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s ^| find "DisplayName"') do ( echo %%J >>%TMP_Folder%\soft.txt ) echo. echo 取得しました。 echo. echo 何かキーを押してください。 echo. pause >nul endlocal exit |
まとめ
これで概ね取得できると思います。
環境によっては、すべて取得できないかもしれません。
ポイントは、[HKEY_LOCAL_MACHINE] と [HKEY_CURRENT_USER] それに64bit OS用に[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall] から取得するところです。
※確認OS:Win7、Win8