00158 99/01/14 04:49 RE:00157 回線異常時の処理について
投稿者 : かずや   コメントを投稿する

こんにちわ

>もしも通信中にエラーが起ったときに、リダイアルし、スクリプトの最初から
>再実行させるにはどのコマンドを利用すればいいのでしょうか?
connect文を使います
connect文は、アクセスが成功すると、そこで処理は終了します
失敗すると、そのまま処理は次の行に進みます

アクセスしたあとも、処理を続行するばあいは
「自動起動するスクリプト」を使います

>何から何まで聞いてすみません。
いえいえ、σ(^-^)もよい勉強になります


00159 99/01/14 13:19 RE:00157 回線異常時の処理について
投稿者 : 秀まるお   コメントを投稿する

 追加レスしてしまいます。

> もしも通信中にエラーが起ったときに、リダイアルし

 errorlog onとやった場合にエラーが発生しているかどうかの判定は、errorlog.
txtというファイルが存在しているかどうかで判断すればいいです。

 「errorlog on」とやっておくと、秀Term用のディレクトリにerrorlog.txtという
ファイルが作成されるので、エラーが起きたかどうかはそのファイルが存在している
かどうかで確認することができます。

 スクリプトの先頭にて

    delfile "errorlog.txt"
    @@error = 0
    afterhangup HangupProc

 とやっておいて、あと、スクリプトの途中の適当な所にて、

    if( existfile( "errorlog.txt" ) )
        @@error = 1
        hangup
    endif

 のような処理を実行するようにしておいて、

HangupProc:
    if( @@error != 0 )
        delfile "errorlog.txt";
        ;エラーの時のリダイヤルの処理とか...
    endif

 ってな風にすればいいと思います。


00160 99/01/14 16:44 RE:00159 回線異常時の処理について
投稿者 : woods   コメントを投稿する

みなさんありがとうございました。
なんとかかんとか、できました。

> errorlog onとやった場合にエラーが発生しているかどうかの判定は、errorlog.
>txtというファイルが存在しているかどうかで判断すればいいです。

> 「errorlog on」とやっておくと、秀Term用のディレクトリにerrorlog.txtという
>ファイルが作成されるので、エラーが起きたかどうかはそのファイルが存在している
>かどうかで確認することができます。

モデムを内臓している装置に電話をかけて、ロギングを停止するコマンドを送って、
その後、ログをダウンロードして、再びロギングを開始するコマンドを送り、
回線を切断するようなことをしていました。

ところがまれに、ダウンロード中にデータ転送がストップする事があり
回線が切れてしまうことがあったのです。

それで今回、回線が切れた場合のリダイアルをさせようとしていたのです。

ところで、afterhangupコマンドは入れ子になっていてもよいのでしょうか。

afterhangup AbortProc
AbortProc:
 if( existfile( "errorlog.txt" ) )
 connect ”ABC”
 endif

afterhangup AfterClose
 hangup
 AfterClose:
closehideterm

このように、異常終了にて回線切断された場合、ABCに接続しに行きます。
(ちなみに、同じABCで使用するスクリプトに上記内容を記述しています)
異常終了しなかった場合、AbortProc:は実行されずに、
afterhangup以降を処理しています。希望する動きになっているのですが、
もんだいないのですよね。




新規に投稿する