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に詳しい方で、「それはやり方が悪いせいだ、こうすればいい」というのをご存知だったら、ご指摘ください。