TeraTermのマクロにおけるリンクと状態制御 その2(2021/02/03) [Windows]
前回、ちょっと専門的で難しく書きすぎたようなので、もっと簡単に書くことにします。
TeraTermのマクロ作りで一番難しいのは、「入力と出力の同期を取ってきちんと制御下におくこと」です。同期が取れておらず、暴走している or 潜在的に暴走しているマクロログは以下のようになります。
単純な改行の連続のはずなのに、空行ができてしまう
投入コマンドが復唱されてしまう
次の投入コマンドがログの中に埋もれてしまう
よく見るパターンですね。これら全て制御に失敗していると言えます。基本的に送信のsend系命令と、受信のwait系命令が1対1で対応していればこのようなことは起こらないはずです。
こういった制御不能な状態を無理矢理制御するために、pause命令でウェイトを入れたりしますが、本質的には愚の骨頂であり何の解決にもなっていません。きちんと制御できているマクロは流れるようにログ取得が行われますが、pause命令でウェイトを入れてしまうと頻繁に停止し、ギクシャクとした動きになってしまいます。
一応私の持論として、きちんと制御できているマクロであればpauseによるウェイトはいらないと思っています。
TeraTermのマクロ作りで一番難しいのは、「入力と出力の同期を取ってきちんと制御下におくこと」です。同期が取れておらず、暴走している or 潜在的に暴走しているマクロログは以下のようになります。
単純な改行の連続のはずなのに、空行ができてしまう
Router# Router# Router# Router# Router# Router# Router#
投入コマンドが復唱されてしまう
Router# show ip route show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 ...
次の投入コマンドがログの中に埋もれてしまう
Router# show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area show interfaces N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 ...
よく見るパターンですね。これら全て制御に失敗していると言えます。基本的に送信のsend系命令と、受信のwait系命令が1対1で対応していればこのようなことは起こらないはずです。
こういった制御不能な状態を無理矢理制御するために、pause命令でウェイトを入れたりしますが、本質的には愚の骨頂であり何の解決にもなっていません。きちんと制御できているマクロは流れるようにログ取得が行われますが、pause命令でウェイトを入れてしまうと頻繁に停止し、ギクシャクとした動きになってしまいます。
一応私の持論として、きちんと制御できているマクロであればpauseによるウェイトはいらないと思っています。
タグ:TeraTerm
コメント 0