【TeraTermマクロ】接続先の文字コードをタイトルに設定する


この記事はプロモーションを含みます。

Linux

TeraTermマクロを使用して、接続先のLinuxに設定されている文字コードをTeraTermのウィンドウタイトルに設定する方法を解説します。

はじめに

以前、コマンドの実行結果をTeraTermのウィンドウタイトルに設定する方法を説明しました。
ここでは、TeraTermから接続するLinuxに設定されている文字コードをタイトルとして設定する方法を説明します。

以下は、タイトルに「テスト文字列」と設定してみた例です。
今回は、このテスト文字列を設定されている文字コードにしてみます。

例では、日本語を使用していますが、TeraTermのバージョンや環境によっては文字化けする場合や、タイトルが正しく変更されない場合がありますのでご了承ください。

本記事執筆時の環境は、以下のようになっています。

  • 作業端末:Windows 10 Pro (21H2)
  • TeraTermのバージョン:Version 4.105 (SVN# 8433)
  • 接続先サーバー:MIRACLE LINUX release 9.0 (Feige)

事前準備

ウィンドウにタイトルを設定するにあたり、事前にTeraTermの設定を変更します。
*TeraTermのバージョンによっては、この設定が不要なので、一旦設定せずに試してもらってもいいかもしれません。
以下で、解説しているので、そちら参考にして下さい。

TeraTermマクロの作成

ここでは、TeraTermマクロの作成を行います。
例として、よくあるログインマクロを拡張して、タイトルに文字コードを表示するマクロを作成してみたいと思います。

まず、マクロの構成についてですが、以下のようになっています。

  • main.ttl:ウィンドウタイトルを設定する処理を記述
  • login.ttl:Linux機器に接続(ログイン)する処理を記述

下記は、各マクロのソースコードです。

main.ttl(実行するマクロ)

; 実行コマンド
execcmd='echo $LANG'

; ログインマクロの呼び出し
include '.\login.ttl'

sendln execcmd
recvln
recvln

; 文字コードの確認
character=inputstr

wait '#'

; 文字コードをタイトルに設定
settitle character

end

まず、「execcmd=’echo $LANG’」ですが、
実行するコマンド[echo $LANG]を変数[execcmd]に格納しています。
([echo $LANG]を実行することで、Linuxの文字コードを取得できます)

[include]コマンドでは、ログイン用部品[login.ttl]の呼び出しを行っています。

最後に、コマンドを実行し、その実行結果をTeraTermのウィンドウタイトルに設定しています。

ポイントは赤字の「settitle character」という処理になります。

「settitle」を記述する位置は、connectの後になります。
connectより前に記述するとマクロがエラーとなります。
(connectは、login.ttl内で実行しています)

login.ttl(main.ttlから呼び出されるマクロ)

; 接続情報
HOST = '***.***.***.***'
PORT = '22'
USER = 'root'
PASS = 'root'

CMD = HOST
strconcat CMD ':'
strconcat CMD PORT
strconcat CMD ' /ssh /2 /auth=password /user='
strconcat CMD USER
strconcat CMD ' /passwd='
strconcat CMD PASS

connect CMD

wait '#'

接続情報の「HOST」、「USER」、「PASS」は適宜変更して下さい。
また、最後の「wait ‘#’」は、処理待ちになっており、TeraTermのプロンプトが返ってくるまで待っています。プロンプトによっては、文字が[$]になる場合がありますので、そのような場合は変更してください。
ログインマクロについては下記の記事で解説しています。

実行結果

マクロの実行結果です。
下記(緑枠)のように、文字コードが、タイトルとして設定されていることが分かります。

関連記事

TeraTermマクロに関する記事です。

コメント

タイトルとURLをコピーしました