新トップページへ | Tip

TeraTerm用のマクロを作ってみる

LastUpdate : 08/12/18

 私がいつも使っているのは、TeraTerm(http://ttssh2.sourceforge.jp/)です(たぶんw)。
簡単なサンプルを作成してみました。一応動くみたいなので、のっけておきます。

実は、詳細については、TeraTermのヘルプの中([ヘルプ(H)]→[目次(I)])に書かれています。なので、ここでは、実際作ったマクロと、その実行方法について書きたいと思います。
下準備として、マクロファイルの拡張子であるttlファイルを、ttpmacro.exeに関連付けをしておきます(windowsの設定。また、ttpmacro.exeは、teratermのプログラムファイルと同じフォルダの中にあります)。

サンプルとして、rootでログインし、「 ls -al 」コマンドを実行し、終了するマクロです。

;ホストのアドレスを指定(各自の環境に合わせて変更)
hostaddress = '192.168.11.65'

;ログインするユーザ名前の指定(変更してください)
username = 'root'

;パスワードの指定
passwd = 'passwd'


;ログインコマンド用の文字列を作成
sendmsg = hostaddress
strconcat sendmsg ':22 /ssh /auth=password /user='
strconcat sendmsg username
strconcat sendmsg ' /passwd='
strconcat sendmsg passwd


;サーバへ接続し、ログインする。
connect sendmsg

;ログ取得スタート(+スタート直後の時間をログに書き込む) 
logopen 'ttl.log' 0 0
getdate currentdate
gettime currenttime
sprintf '処理開始 : %s %s'#13#10#13#10 currentdate currenttime
logwrite inputstr


;最初の表示が出てくるまで待つ(自分の環境に合わせて変更してください)
wait '[root@chiki ~]#'

;コマンドを実行
sendln 'ls -al'

;最初の表示が出てくるまで待つ(自分の環境に合わせて変更してください)
wait '[root@chiki ~]#'


;exitすることをログに書き込む。
getdate currentdate
gettime currenttime
sprintf #13#10#13#10'処理完了 : %s %s' currentdate currenttime
logwrite inputstr

;ログをクローズする。
logclose


;終了する。
sendln 'exit'

作っていて、悩んだ点が改行です。
文字列に#13#10をくっつけると改行になる様子です。
また、ログファイルに、ttl.logを指定していますが、これは、ttpmacro.exeがあるフォルダと同じ場所に出来る様子です。他の場所に指定したい場合は、絶対パスで指定すればたぶん大丈夫なのではないかと思います。

また、今回のオプションの指定方法では、一回実行されるごとに、過去のttl.logファイルを削除し、新たにttl.logファイルを作成し、ログをそこへ出力しています。オプションにより、色々指定可能なので、マニュアルを見てみてください。

このファイルにて、sendln 'ls -al' とやっているところが、lsコマンドを実行しているところです。この部分をいろいろと拡張していけば良いかと思います。