どうも、作業効率化しすぎて直近の作業がなくなった 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
以下が実際に使用しているマクロです!ご自由にどうぞ!
Pour-config
最後までご覧いただきありがとうございます!
それでは良いエンジニアライフを!!
コメント