TeraTerm(テラターム)のマクロ機能を利用し、SSH(パスワード認証)でサーバに自動ログインした後、文字コードを自動切り替えして日本語表示部分の文字化けを撃退するテラタームマクロをご紹介致します。
内容を簡単に説明しますと、まず自動ログイン後に接続先ホストが使用している文字コードを自動認識します。その文字コード用に準備していたINIファイル(設定ファイル)を読み込み直す事でTera Term側の文字コード設定を変更するといった内容となっています。
*事前に各文字コード毎にINIファイル(設定ファイル)の準備が必要です。
前回ご紹介した漢字コード部分のみの変更だけでなく、画面サイズ 、フォントなどの設定も使い分けができるので、より柔軟な設定が可能となります。
⇒ Tera Termマクロ-文字コード自動切り替え(文字化け対策その壱)
SSH自動ログイン&文字コード自動切り替え クロ その弐
;=========================================================== ; Filename : Character-code-02.ttl ; Description : SSH Auto login ; Author : JUNZOU ; Created : 2011/04/10 ; modified : ;=========================================================== ;; 接続先ホスト/ユーザ名/パスワード設定 HOSTADDR = '接続先IPアドレス' USERNAME = 'ユーザ名' PASSWORD = 'パスワード' ;=========================================================== ;; コマンド組立て COMMAND = HOSTADDR strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD ;; 接続 connect COMMAND ;; 接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) if result <> 2 then messagebox 'It could not be connected.' 'Connection Error' end endif ;; 接続判定2(10秒以内にプロンプトが表示されない場合TeraTerm終了) timeout = 10 wait '$' '#' if result = 0 end ;; 文字コード別にINIファイルを設定(文字コード毎にINIファイルを事前に準備) sendln 'echo $LANG' wait 'ja_JP.UTF-8' 'ja_JP.eucJP' 'ja_JP.SJIS' if result = 1 then ; UTF8 restoresetup 'C:\Program Files\teraterm\utf8.INI' elseif result = 2 then ; EUC restoresetup 'C:\Program Files\teraterm\euc.INI' elseif result = 3 then ; SJIS restoresetup 'C:\Program Files\teraterm\sjis.INI' endif ;; マクロ終了 end
マクロ内容の解説
項番⑤「文字コード別にINIファイルを設定」部分の解説
「sendln ‘echo $LANG’」で接続先ホストの文字コードを確認しています。
「wait ‘ja_JP.UTF-8’ ‘ja_JP.eucJP’ ‘ja_JP.SJIS’」部分で「echo $LANG」の結果がコンソールに表示されるのを待っています。
表示された文字列により戻り値が設定されます。
「ja_JP.UTF-8」が表示されると戻り値=1
「ja_JP.eucJP」が表示されると戻り値=2
「ja_JP.SJIS」が表示されると戻り値=3
どれにも当てはまらない場合の戻り値=0
戻り値によって事前に用意している対象のINIファイル(設定ファイル)を「restoresetup」コマンドで読み込み直しを行っています。
他の部分の解説は、ここでは割愛させていただきます。過去に「SSH自動接続マクロ」の中で詳しく解説していますので、そちらをご参照ください。
TERATERM.INIファイルの事前準備
このマクロを使用するには、事前に各文字コードにあわせたINIファイル(設定ファイル)を作成しておく必要があります。INIファイルを配置するフォルダは任意の場所でもかまいません。もし変更する際は、「restoresetup」コマンドで指定するパス部分を変更してください。
おわりに
今回ご紹介した文字コード自動切り替えマクロは、前回ご紹介した『Tera Termマクロ-文字コード自動切り替え(文字化け対策その壱)』に比べ文字コードだけで無く、その他の設定(フォント・背景色等々)も切り替えて使用する事が可能となっています。
例)文字コードが違うサーバ毎に、画面の背景色を変更する
このマクロは、いろんな使い道があると思いますので、是非利用してみてください。(私も普段愛用しているマクロになります!)