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
複数行のコマンド実行結果を取得する
複数行の実行結果を取得する方法は、以下で解説しています。
リンク
コメント