【TeraTermマクロ】テキストファイル内のコマンドを一行ずつ流し込むマクロ

どうも、作業効率化しすぎて直近の作業がなくなった 0 -Ray- です!

今回は私が使っているTeraTermマクロを紹介していきます!

今回のマクロでできることテキストファイル内のコマンドを一行ずつ流し込む

一番最後にダウンロードできるリンクを用意するのでご自由にお使いください!
それでは早速いきましょう!

スポンサーリンク

コード

getdir dir1
dir2 = '\cmd.txt'
strconcat dir1 dir2

fileopen dir dir1 0

:freadloop
filereadln dir conf
if result goto breakloop
    pause 1
    sendln conf
    wait '#' '(config)#'
goto freadloop

:breakloop

fileclose dir

コード解説

getdir dir1
dir2 = '\cmd.txt'
strconcat dir1 dir2

このコンフィグで流し込むテキストファイルのパスを決めています。
dir1は現在マクロが置かれているフォルダのパスを示します。
こちらはgetdirコマンドで手軽に取得できます!

dir2で絶対パスに必要な情報を補完しました。
つまりマクロが格納されているフォルダとcmd.txtは同じフォルダに置く必要があります!

そしてstrconcatにより、文字列を結合します。これにてパスが完成します。
この書き方にすることにより、相対パスにできます。
絶対パスだと簡単ですが、フォルダを移動する毎にパスを書き換えないといけなくなってしまうので、、
ちなみに結合した文字列はdir1に格納されます!

fileopen dir dir1 0

このコンフィグで流し込むテキストファイルの内容を読み込みます。
dir1の内容をdirに格納します。
最後を0にすると読み書きモード、0以外にすると、読み取り専用でファイルを開けます。

:freadloop
filereadln dir conf
if result goto breakloop
    pause 1
    sendln conf
    wait '#' '(config)#'
goto freadloop

:breakloop
fileclose dir

この処理でいよいよ流し込みです!

fileradlnで1行読み込みます。dir の一行を conf に格納します。

そして、最終行までif文内のコマンドで流し込んでいきます。
if result goto breakloop で 全部流し込んだ後にloopを抜けて終了処理へ移動します。

pause 1にて1秒間隔でコマンドを入れていきます。
これが無いと処理が追い付かず、上手く投入できないことがあったので入れてます。
ちなみに mpause にすることでミリ秒にして、投入スピードを上げることもできます。

sendln conf にて読み込んだ文字列を流し込みます。

wait ‘#’ ‘(config)#’ にてこの文字列が出力されるまで処理を停止できます。
一旦IOS用にしてますが、こちらは使用する機器や環境に合わせて修正してください。

goto freadloop にて処理をloopできます。

fileclose dir でファイルを閉じて処理終了です。

Download

以下が実際に使用しているマクロです!ご自由にどうぞ!

最後までご覧いただきありがとうございます!
それでは良いエンジニアライフを!!

コメント

タイトルとURLをコピーしました