Terminalでカウントアップのマクロ




 ネットワークエンジニアのおいらは普段、Terminalには秀Termを使ってます。

 今回はTera Termでやってくれとの指示があったので、慣れないながらにマクロ(Script)を作っていました。

 そこで、カウントアップのマクロに意外と苦戦。





■秀Termのカウントアップのマクロ

-----------------------------------

##count = 1

LOOP:

send "###" + ##count + "### ^M"

##count = ##count + 1

goto loop

end:

-----------------------------------

 これなら慣れているから余裕です。
 countは自分で定義した変数です。





■Tera Termのカウントアップのマクロ

-----------------------------------

count = 1

:loop

int2str countup count ←★
sendln '###' countup '###'

count = count + 1

goto loop

end

-----------------------------------

 と、こうなりました。
 countとcountupは自分で定義した変数です。

 Tera Termでは★がポイントで、数値を文字列に変換して変数に入れる工程が必要になるようです。
 秀Termみたいに、変数をそのまま出力できないなんて、使い勝手が悪いなぁ。





■Tera Termのカウントアップのマクロ 失敗例1

-----------------------------------

count = 1

:loop

sendln '###' count '###'

count = count + 1

goto loop

end

-----------------------------------

 これだとcountが出力されず、エラーになります。
 変数の数値をダイレクトに出力できないようです。





■Tera Termのカウントアップのマクロ 失敗例2

-----------------------------------

int2str count 1

:loop

sendln '###' count '###'

count = count + 1

goto loop

end

-----------------------------------

 これだと、

count = count + 1

 が定義されてない変数と見なされ、最初のcountは正しく出力されますが、この構文でエラーになります。





 とまぁ、試してみたところ、Tera Termでは変数を二つ定義しないと、カウントアップのマクロが作れませんでした。
 答えを見ちゃうと簡単だけど、知らないでやろうとすると、案外、苦戦するもんですよ。





 上のマクロでうまくいくのは確認済みですが、考え方に誤りがあったらすんません。
 Tera Termに詳しい方で、「それはやり方が悪いせいだ、こうすればいい」というのをご存知だったら、ご指摘ください。