TeraTermマクロから[ls -l]コマンドなど、複数行の実行結果を取得する方法を解説します。
早速ですが、ソースコードになります。
サンプルでは、[ls -l /home/]コマンドを実行し、その結果をメッセージボックスで表示しています。
相変わらず、[recvln]に癖がありますが、何とか取得出来ました。
仕組みとしては、[recvln]でコマンドの実行結果の1行目でループに入るよう調整して、実行結果の1行と改行を結合して、変数に格納しています。
プロンプトの戻り値[#]が文字列に含まれた場合にループを抜けて、メッセージボックスで変数の内容を表示しています。
; ログインマクロの呼び出し include 'module\login.ttl' sendln 'ls -l /home/' recvln recvln strscan inputstr '#' sendln '' while result=0 strconcat msg inputstr strconcat msg #13 recvln strscan inputstr '#' endwhile messagebox msg 'コマンド実行結果' end
コマンドの実行結果になります。
合計 16 drwx------. 15 awx awx 4096 5月 24 2021 awx -rw-r--r-- 1 root root 892 5月 31 2021 data.yml
記事は以上です。これを利用するとLinuxサーバから情報を取得出来るため、タスクスケジューラなどと組み合わせれば、サーバの監視など定期的な情報収集に役立てそうですね。
サンプルソースコードの冒頭にあるログインマクロは以下で解説しています。
簡単に作成出来るので、あわせてご覧ください。
コメント