teratermマクロでwaitの使い方!waitlnやifとの組み合わせ場合分けも

traning

teratermマクロで「wait」の使い方基礎から応用までご紹介します。

実際にteratermマクロを使用しており、最近「wait」と「if」を併用して、場合分けなど便利な事が出来たのでそちらもご紹介します。

teretermマクロは識別子が「.ttl」のファイルで、teratermの自動化ができます。そのマクロでwaitを使用できれば途中で一時停止ができ、解析などにも役立ちます。

目次

teratermマクロでwaitの使い方!

teratermマクロでの基礎構文

teratermマクロで「wait」を使用すればプロンプトを待つ事が出来ます。

基本的な使い方は以下になります。

wait '待ちたい文字列'

teratrmマクロの「wait」を実際に使ってみる

例文でLinuxサーバーにログインしプロンプトが返ってくるまで待ちます。

以下のようにwaitの一文を入力します。

wait '#'

これで[root@localhost ~]#がプロンプトに帰ってくるまでマクロを停止します。

teratrmマクロの「wait」で複数の文字を待つ

プロンプトが#ではなく$の時もあります。

teratermマクロのwaitでは複数を待つことも可能です。

以下のようなwaitを記入したteratrmマクロにします。

wait '#' '$'

#と$でどちらが来てもマクロが進みます。

waitの引数の1番目の結果になればresultに1が入ります。2番目なら2が入ます。3番目なら~と続きます。

上のteratrmマクロの場合は以下になります。

#の場合はresultに1が、$の時はresultに2が入ります。タイムアウトの場合はresultに0が入ります。

10個まで文字を待つことが可能です。

waitとifを併用して場合分けする

選択する
Business person stand on road fork with hard and easy directions. Choice way isometric

ifを使用し場合分けして、続く処理を変更してみましょう。

以下のTeratermマクロを記入します。

;Hostnameを設定しているNW機器やサーバーにでも対応するログインマクロ
wait 'Hostname:' 'Password:' '#'

;Hostname:が来た時の処理
if result=1 then
sendln 'echo switch'

;Password:が来た時の処理
elseif result=2 then
sendln 'echo router'

;サーバーが来た時の処理
elseif result=3 then
sendln 'echo server'
endif

これでどんなプロンプトが来てもひとつのteratermマクロファイルで対応できます。

サーバーにログインしてみましょう。

teratermマクロwait場合分けの結果

結果serverと表示になりました。

waitlnについて

エンターをした後に指定の文字列を待ちます。

一時ユーザーのエンターを待つことができます。

先程のteratermマクロの「send」を「sendln」に変更して見ます。

以下のコードになります。

;Hostnameを設定しているNW機器やサーバーにでも対応するログインマクロ
waitln 'Hostname:' 'Password:' '#'

;Hostname:が来た時の処理
if result=1 then
sendln 'echo switch'

;Password:が来た時の処理
elseif result=2 then
sendln 'echo router'

;サーバーが来た時の処理
elseif result=3 then
sendln 'echo server'
endif

このteratermマクロを実行してみます。

teratermマクロでのwaitlnの結果1

ここでエンターが来るのを待ちます。

エンターを押してみます。

teratermマクロでのwaitlnの結果2

すると「#」があったのでteratermマクロが進みます。

teratermマクロでwaitの使い方!まとめ

traning

teratermマクロの「wait」の基本的な使い方は以下になります。

wait '待ちたい文字列'

以下の様に10個まで引数を設定できます。

wait '#' '$'

その時にresultに引数の番号が入ります。

それを使用してifで場合分けも出来ます。

「wait」を「waitln」にするとエンターした後に指定の文字列を待ちます。

一旦マクロを止めてユーザーの入力を待つようなマクロも作成可能です。

そういったマクロの例文は以下になります。

;Hostnameを設定しているNW機器やサーバーにでも対応するログインマクロ
waitln 'Hostname:' 'Password:' '#'

;Hostname:が来た時の処理
if result=1 then
sendln 'echo switch'

;Password:が来た時の処理
elseif result=2 then
sendln 'echo router'

;サーバーが来た時の処理
elseif result=3 then
sendln 'echo server'
endif

このようなteratermマクロをよかったら試して見て下さい。

traning

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次