アプリ版:「スタンプのみでお礼する」機能のリリースについて

Windows7でレジストリよりPostgreSQLのインストール先をバッチで取得しようとしたのですが取得できませんでした。
同じ階層で「文字列値」に空白がない「Version」は取得できるのですが
「Base Directory」になると取得できません。
文字列値に空白がある場合「”~”(ダブルコーテーション)」でくくればいいとあったのですが、駄目でした。
どなたかご存知の方教えてください。

@echo off
FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.0" /v "Version"') DO IF "%%A"=="Version" SET GET_Version=%%C

FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.0" /v "Base Directory"') DO IF "%%A"=="Base Directory" SET GET_DIR=%%C

echo PostgreSQL Version
cho %GET_Version%
echo PostgreSQL Directory
echo %GET_DIR%

pause
exit

A 回答 (1件)

"Base Directory"そのものにも空白があります。


そのため、

(略)DO IF "%%A %%B"=="Base Directory"(略)

と指定しないと見つからないようです。
"Program Files"の空白の処理が面倒な気がします。
"ProgramFiles"とかにインストールされていると空白の数が違ってきますので。

コマンドプロンプトで
REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.0" /v "Base Directory"
を実行して結果を見るとわかりやすいです。
    • good
    • 0
この回答へのお礼

ご連絡が遅くなってしまい申し訳ありませんでした。
教えていただいた内容で上手くできました。
ありがとうございました。

お礼日時:2014/02/26 12:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!