PostgreSQL インストール先の取得
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
お礼
PostgreSQLではconnection毎に1つプロセスが用意されるのですね。 私の環境では、 # ps -ax とすると COMMAND欄に、 postgres: postgres db名 Host名 と表示されました。 db名とHost名が判れば十分です。 ありがとうございました。 またその後 別の会議室での質疑応答で見つけたのですが、 pg_stat_activity というシステムビューで意図する情報が取得できることが判りました。
補足
本当は「どのユーザがconnectしているか?」を知りたいのですが、「どれだけ(何人)がconnectしているか?」を得る方法があるならそれでも良いです。 接続プロセスは何という名前になるのでしょうか?