原色奈良阪

PuTTYごった煮版のレジストリ設定をINIファイルにしようとしたときのメモ。

ZIPでインストールしてputtyjp.exe起動して色々設定して閉じたら、どうもレジストリを使うって話だったのでINIに変更することにした。

ごった煮版の本家ゑBLOG: PuTTYごった煮版 レジストリ<->INIファイルコンバータに書かれている内容そのままでは無理だったので、ここではなんとなく正道だろうと思ったreg2ini.plを修正する方法を示した。

この作業はPerlのインストールが前提となる。

レジストリをエクスポート

序盤はゑBLOG: PuTTYごった煮版 レジストリ<->INIファイルコンバータを参考に。

Windows+Rで「ファイル名を指定して実行」を出し、regeditとうってレジストリエディタを起動する。

HKEY_CURRENT_USER\Software\SimonTatham\PuTTYを右クリックし「エクスポート」を選び、[ファイルの種類:登録ファイル (*.reg)][選択された部分]の設定で適当な名前(putty.regとか)をつけて出力。

レジストリをINIへ

ゑBLOG: PuTTYごった煮版 レジストリ<->INIファイルコンバータからレジストリファイルからINIファイルに変換するスクリプトを落としてくる。

てきとうにコマンドプロンプト開いてperl reg2ini.pl < putty.reg > putty.iniとして通ればいいのだが、putty.regの文字コードがUTF-16となっている関係でこのままではだめ。

なのでreg2ini.plをサクラエディタなどUTF-8をBOMなしで扱えるテキストエディタで開いて、以下のような変更を冒頭に加えてUTF-8で保存してから実行することが必要である。

# 追加部分開始
use utf8;
binmode STDIN,':encoding(utf16)';
binmode STDOUT,':encoding(utf8)';
# 追加部分終了

print <<EOF;
[Generic]
UseIniFile=1
EOF
...

もし、

[Generic]
UseIniFile=1
EOF

としかputty.iniに書かれていないようなら変換は失敗であるので、上記を確認してほしい。

レジストリを削除

本家PuTTYのFAQA.8.2 What does PuTTY leave on a system? How can I clean up after it?にあるとおりの手順を踏めばよい。

コマンドプロンプトからputty.exe -cleanupを実行し、出てきた警告(本当に消去していいかという確認)に「はい」を押せばレジストリの内容は消去される。

他の手段

変換スクリプトreg2ini.plを修正する以外に以下の手段がある。

putty.regの文字コードを変換する

putty.regをスクリプトにかける前にエディタで開きUTF-8で保存する。

putty.regの出力設定を変える

[ファイルの種類:登録ファイル (*.reg)]ではなく[ファイルの種類:Win9x/NT4 登録ファイル (*.reg)]で保存する。

別ツールを使う

PuTTY ごった煮版のレジストリから INI ファイルを生成するにVBScript版がある。

Edited by Narazaka 2012/03/01