3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(バッチ)レジストリの値を取得し変数に格納

バッチファイルで、レジストリの値を取得して変数に入れるための方法です。

レジストリからの値の取得は reg query コマンドで出来るようです。/v の後に、キーの名前を指定します。

例えばFlashPlayerのバージョンを取得するには以下のようにします。

C:\>reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX" /v "Version"

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX

Version REG_SZ 11.0.1.152

これを変数に入れるためには、実行結果を行ごとにループで回し、求めたい値の名前(結果行の空白で区切った1番目(%%A)。今回はVersion)が出てきたら、その3番目(%%C。%%Aから3つ目)を GET_VALUE 変数に入れるという処理の流れにすればいいようです。

@echo off

 

FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX" /v "Version"') DO IF "%%A"=="Version" SET GET_VALUE=%%C

 

echo Flashバージョン

echo %GET_VALUE%

 

pause

参考:

レジストリの値をコマンド プロンプトで取得する こちらのコードをほぼそのまま使わせてもらいました。

@IT:コマンド・プロンプトでレジストリを操作する

コマンドプロンプトを使ってみよう! -バッチファイル-