質問: Windowsのダイヤルアップ接続の際のスクリプト実行について、お伺いします。 Windowsのダイヤルアップ接続の際に、スクリプトを実行しています。 回線接続後、回線接続した相手側とのデータのやり取りの結果により、スクリプトの実行を途中で停止し、 更に、その後の接続処理(PPP接続処理)を停止(キャンセル)することは可能でしょうか? その手順を教えてください。 <現在までに試した結果> 相手側とのデータが指定するものであった場合、HALTする。 →スクリプトが途中で終っただけで、接続処理は続行された。 不可能であるなら回答は不要です。可能である場合、 その手順(スクリプト(*.scpファイル)の記述法?)を教えてください。
回答: 手元に実環境が無い為、過去の実績と検索に頼った回答となります。 あまり綺麗なやり方ではありませんが、モデム側で回線を切ってやれば中断は可能です。 1)モデムがコマンドモードであれば、モデムに回線切断要求を送ってやります。 ``` ~~~~~ 既存の処理 ~~~~~ AbortConnect: transmit "ATH^M" waitfor "OK" halt goto Done ~~~~~ 既存の処理 ~~~~~ Done: endproc ``` 2)モデムがコマンドモードでない場合、コマンドモードにしてから切断要求を送ってやります。 ※コマンドモードへの移行受付を10秒間・3回待つようにしていますが、この値はご自身の環境に応じて変更してください。 ``` integer nTimeOut = 10 integer nRetryCmd = 3 ~~~~~ 既存の処理 ~~~~~ AbortConnect: while 0 < nRetryCmd do transmit "+++" delay 2 waitfor "OK" then HangLine until nTimeOut endwhile HangLine: transmit "ATH^M" waitfor "OK" halt goto Done ~~~~~ 既存の処理 ~~~~~ Done: endproc ``` ※一般的なATコマンドで記述していますが、念のためお使いの機器(モデム)のATコマンド一覧を御確認ください。 また、うまく動作しない場合はターミナルから手動でコマンドを入力して試してみてください。 * ご参考