昨日まで問題無く動作していたバッチファイルが突然動かなくなった。 具体的には、teratermにSSH鍵ファイルを指定して起動するバッチファイルなのだが、teratermがSSH鍵ファイルがおかしいといって、接続してくれない。

start c:\Teraterm\ttermpro.exe ssh://user@www.xxxx.com/ /auth=publickey /keyfile=C:\データの管理\SSH鍵\sshkey\id_rsa

よくみてみると、teratermに表示されているSSH鍵ファイルのパスが文字化けしている。
原因はバッチファイルに指定している日本語を含むファイルパスのようだ。

昨日動作させたコマンドラインから実行するツールがコードページをUNICODEに変えてしまう動作をしていたのを思い出した。いろいろ調べてみたところレジストリに次の記述がある。

[HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe]
"ScreenBufferSize"=dword:270f00c8
"WindowSize"=dword:002300ab
"CodePage"=dword:0000fde9
"FontSize"=dword:000e0000
"FontWeight"=dword:000002bc
"FaceName"="Consolas"

CodePage=0x0000fde9(65001)
となっているので、
CodePage=3a4(932)
に変更したところ無事治った。
Windows7での出来事でした。