アプリ版:「スタンプのみでお礼する」機能のリリースについて

ど素人な質問ですみません。

teratermにて、ある文字列の出力をきっかけにマクロを終了させるような
スクリプトを考えています。
フローとして、
(1):マクロ開始
(2):logファイル生成
(3):ルータの"show xx"にて出力表示
(4):logファイルオープン
(5):filestrseekにて"0 input errors"を検索
(6)-1:もし文字列があればマクロ終了
(6)-2:もし文字列がなければ(3)から繰り返し

上記のフローでやりたいと思っています。
考えたマクロが↓です。

logopen 'c:\test.log' 0 0
:not_found
sendln 'show interface loop 0'
pause 1
fileopen fhandle 'test.log' 0
filestrseek fhandle '0 input errors'
if result=0 goto not_found
if else result=1 goto found
filereadln fhandle str

:found
sendln 'finish script'
fileclose fhandle


いろいろ試したのですが、どうやらそもそも'0 input errors'探せてないようです。ログの中には確かに文字列は含まれているのですが。。

本来であればもっと調べるべきですが時間がなく申し訳ありません。
もしわかる方がいらっしゃいましたらご教授ください。
よろしくお願いいたします。

A 回答 (1件)

単に、ファイルへの書き込みがフラッシュされる前にファイルをオープンしてるからでは。


直接通信バッファでwaitすればよいかと。

http://www.google.co.jp/search?hl=ja&lr=lang_ja& …

この回答への補足

ご回答ありがとうございます。
はい、waitでも試してみたのですが、

------
:found
pause 30
sendln 'show interface loop 0'
wait '0 input errors' 'Router'
if result=0 then
goto found
if result=1 then
goto not_found

:not_found
sendln 'finish script'
----


・バッファにて'0 input errors'を見つけたらスクリプト終了
・見つからなかったら30秒ごとに繰り返し
 ※'Router'の文字列は必ずバッファに含まれる

のつもりで書いています。いろいろ試していますがwaitの分岐処理が
思うようにできません。。
すみません。。

補足日時:2010/03/02 10:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!