PuTTY ごった煮版のレジストリから INI ファイルを生成する
2008-05-10-1
PuTTY ごった煮版では、設定の保存先をレジストリではなく、INI ファイルにすることが出来ます。
そこでレジストリに保存された設定から INI ファイルを作成するスクリプトを書きました。
- putty.iniconv-1.0.0.vbs
http://pocari.org/tools/putty/putty.iniconv-1.0.0.vbs
使い方はコマンドプロンプトで以下のようにします。
putty.ini を putty.exe があるフォルダと同じところに置けば完了です。
C:\> CScript //Nologo putty.iniconv-1.0.0.vbs > putty.ini
'
' INI file converter for PuTTY
'
' Usage:
' C:\> CScript //Nologo putty.iniconv-1.0.0.vbs > putty.ini
'
' Copyright (c) 2008 Norifumi SUNAOKA
' <http://cl.pocari.org/2008-05-10-1.html>
'
' Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
'
'
' Version: 1.0.0
'
Const HKEY_CURRENT_USER = &H80000001
Const PUTTY_SESSIONS_KEY = "Software\SimonTatham\PuTTY\Sessions\"
Const PUTTY_HOSTKEYS_KEY = "Software\SimonTatham\PuTTY\SshHostKeys\"
Set StdOut = WScript.StdOut
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\." & _
"\root\default:StdRegProv")
Set WS = WScript.CreateObject("Wscript.Shell")
' UseIniFile
StdOut.WriteLine "[Generic]" & vbCrLf & "UseIniFile=1" & vbCrLf
' Sessions
WMI.EnumKey HKEY_CURRENT_USER, PUTTY_SESSIONS_KEY, subkeys
For Each subkey In subkeys
StdOut.WriteLine "[Session:" & subkey & "]"
Call OutputValues(PUTTY_SESSIONS_KEY & subkey & "\")
Next
' SshHostKeys
StdOut.WriteLine "[SshHostKeys]"
Call OutputValues(PUTTY_HOSTKEYS_KEY)
Set WS = Nothing
Set WMI = Nothing
Set StdOut = Nothing
'
' OutputValues
'
Sub OutputValues(subkey)
Set RE = new RegExp
RE.pattern = "^\-?[0-9]+$"
WMI.EnumValues HKEY_CURRENT_USER, subkey, names, types
For i = 0 To UBound(names)
value = WS.RegRead("HKCU\" & subkey & names(i))
If Not RE.Test(value) then
value = """" & value & """"
End If
StdOut.WriteLine names(i) & "=" & value
Next
StdOut.WriteLine
Set RE = Nothing
End Sub
また、以下のサイトで、Perl 版が公開されているのですが、なぜだかうちの環境ではうまくいきませんでした。
- ゑBLOG: PuTTYごった煮版 レジストリ<->INIファイルコンバータ
http://yebisuya.dip.jp/yeblog/archives/a000456.html