TeraTermマクロで「– More –」を確実に処理する方法

TeraTermマクロを書く上で面倒なもののひとつに「–More–」の処理があります。「–More–」を適切に処理する方法について解説します。

スポンサーリンク

–More–とは

ネットワーク機器でコンフィグを表示させた場合、稀に数万行に及ぶコンフィグを表示させる必要があり、うっかりシリアルコンソール接続でこれをやるとすべて表示させるのに数時間かかります。

そのため大抵はページャー機能が実装されていて、数十行表示すると「–More–」といったメッセージが表示されます。そして、スペースキーを押下すると次のページが表示されるようになっています。

可能であれば「–More–」を無効化する

Cisco機器の場合「terminal length 0」というコマンドで一気にすべての行を表示させる事ができます。

これはメーカーによってコマンドが異なりますし、こういうコマンドが存在しない場合もあります。そのため、TeraTermマクロ側での対処を検討する必要があります。

どのように対処するか

対処方法は「–More–」を受信したらスペースを送信するようにします。問題は冒頭でも述べたとおりメーカーによって表示が異なるため、「–More–」だったり「– More –」のように空白が含まれる可能性があります。そこで、正規表現を使って処理する事にします。

前半部分は「TeraTermマクロでシリアルログインする方法」で紹介したIX2015へシリアルログインするためのTeraTermマクロです。今回もIX2015を例にしました。この機種はCiscoライクでterminal length 0が使えるのですが、例として「–More–」の処理を行っています。

肝心なのは「sendln ‘ ‘」でなく「send ‘ ‘」としている所です。改行まで送信すると上手く動かないケースが多いので、ここはスペースのみ送りましょう。

今回はNEC製のIX2015を例に使用しましたが、ヤマハ製のルーターやCheckPointのファイアウォールなど「–More–」の箇所さえ機器の表示と合わせればどのようなメーカーや機種でも対応させる事ができますので、試してみてください。

今回のサンプルマクロでは「–¥s*[mM]ore¥*–」としており、スペースが有っても無くてもマッチするようにしています。

スポンサーリンク

フォローする

スポンサーリンク