teratermでログイン後、一定時間たったらタイムアウトされてしまうと、いちいちログインするのが面倒になるものです。それを防止するための一つの方法です。
プログラムと使い方
ソースコード
do
sendln
pause [second]
loop
[second]の部分に改行文字(windowsならエンターキーを押したとき)を送信した後の待機時間を設定します。
例えば待機時間が5秒ならば、
pause 5
とする。
待機時間をミリ秒で設定したい場合は、pauseの代わりに
mpause [millisecond]
を使用する。
マクロファイルの準備
- エディタを起動する。
windows標準のメモ帳でもなんでも良い。 - コードを書く。またはコピー&ペーストする。
- 拡張子”ttl”でファイルを保存する。
マクロファイルの実行
- 機器にteratermでログインする。
- ログイン後、teratermのメニュー「コントロール」の中から「マクロ」を押下する。
- ファイル選択画面が表示されるので、作成したttlファイルを選択して実行する。
- マクロが実行される。
コード解説
TTLコマンドリファレンス
TTL コマンドリファレンス
コード詳細
do
sendln
pause [second]
loop
プログラムの流れは以下の通り。(マクロは上の記述から順番に実行されます。)
- doが読み込まれる。(動きはなし。)
- sendlnが実行され、teratarm接続先に改行文字が送信される。
- pauseが実行され、指定秒数待機する。
- 処理がloopまで来ると、doへ処理が飛ぶ。
- 以降1~3の繰り返し。
使っている文は3つ。
- do ~ loop
- sendln
- pause
do ~ loop
繰り返し処理をするための文。
doとloopの間に書いた処理を条件式に従って繰り返す。
今回のプログラムでは条件式を指定していないため、マクロを停止するまで永遠に処理を繰り返し続けます。
sendln
改行文字を送信する。
sendlnの後に文字列を書くことで、”その文字列” + “改行文字”を送信。
今回のプログラムでは改行文字のみを送信します。
もし、”ls”などのコマンド文を記載していた場合、”ls”と改行文字を送信。
pause
指定した秒数、待機する。
もし秒数を指定しない場合、この処理分をマクロが実行する段階でエラーになる。
終わりに
teratermマクロの基本(?)とも言えるこの繰り返し改行文字を送信するマクロの紹介でした。
マクロは使えると便利なので、このマクロから発展して自分だけのツール作りをしてみると良いと思います。