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