【TeraTermマクロ】単一行(1行目)のコマンド実行結果を取得する


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

Linux

TeraTermマクロを使用し、コマンドの実行結果より、単一行(1行目)を取得する方法を解説します。

はじめに

ここでは、TeraTermマクロを使用して、コマンドの実行結果から、単一行(1行目)のみを取得する方法を解説します。
コマンドの実行結果が複数行ある場合は、最初の1行目のみを取得します。

コマンドの実行結果が、、、

  • 単一行の場合:そのまま取得する。
  • 複数行の場合:最初の1行目を取得する。

ようなマクロの作り方を説明したいと思います。

ソースコード

ここでは、TeraTermマクロのソースコードについて説明します。

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

  • main.ttl:コマンドの実行結果を取得する処理を記述
  • login.ttl:Linux機器に接続(ログイン)する処理を記述

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

main.ttl

; 実行コマンド
execcmd='pwd'

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

sendln execcmd
recvln
recvln

; コマンドの実行結果を取得
messagebox inputstr 'コマンド実行結果'

end

まず、「execcmd=’pwd’」ですが、実行するコマンド[pwd]を変数[execcmd]に格納しています。

[include]コマンドでは、ログイン用部品[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のプロンプトが返ってくるまで待っています。プロンプトによっては、文字が[$]になる場合がありますので、そのような場合は変更してください。
ログインマクロについては下記の記事で解説しています。

実行結果

今回は、pwdコマンドを実行しただけなので、以下のようにカレントディレクトリが表示されるだけですね。

/home

複数行のコマンド実行結果を取得する

複数行の実行結果を取得する方法は、以下で解説しています。

コメント

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