home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 July / VPR9707A.ISO / OLS / Win32 / NTM153D / NTM153D.LZH / SCRIPT.TXT < prev    next >
Text File  |  1997-01-28  |  10KB  |  336 lines

  1. NifTerm ログインスクリプト仕様 第4版 1997/01/28 (C) Daytime
  2.  
  3. 1.目的
  4.     NifTerm のログインスクリプトは、ROAD1~7以外の経路でNIFTY-Serve につなぎ
  5.  NifTerm を使いたい、というご要望に応えるための機能です。NifTerm の基本機能を
  6.  拡張することを目的としていません。
  7.  
  8.  注意:通信条件はノーパリティ/8ビット/1ストップビット/シフトJISに限ら
  9.  れます。この条件で接続できないネットは経由できません。
  10.  
  11. 2.ログインスクリプトの内容
  12.     ログインスクリプトでは以下の部分を1個のファイルに記述します。
  13.     ・モデムから「CONNECT」が返った後、ホストから「Enter Connection-ID」が返る
  14.       までの間(ログイン部分)
  15.     ・ホストに「BYE」を送ったあと、回線切断までの間(ログアウト部分)
  16.  
  17. 3.スクリプトファイルの作成
  18.     スクリプトファイルはシフトJIS のテキストファイルです。拡張子はLSC です。任
  19.   意のテキストエディタで作成することができます。
  20.  
  21.  ご注意:エディタによっては、「名前をつけて保存」するとき指定したファイル名のう
  22.  しろに強制的に.TXTをつけて.LSC.TXTのような名前にしてしまうものがあります。エク
  23.  スプローラで拡張子を隠さないように設定してファイル名をご確認の上、.LSC.TXTにな
  24.  っていたら、.LSCにリネームしてください。
  25.  
  26. 4.スクリプトファイルの使用
  27.     スクリプトファイルを使用するには、次の手順で指定します。
  28.  
  29.     ・スクリプトファイルをNifTerm のデータ(SETTING.DATなど)と同じディレクトリ
  30.       に置きます。
  31.     ・アクセスポイントの追加時に、ディレクトリにある拡張子「.LSC」を持つファイ
  32.       ル名が「経由」の欄に候補として表示されるので、これを選びます。
  33.  
  34.   ROAD*.LSC という名前は付けないでください。内蔵のROADx用スクリプトと競合する
  35.   ため選べなくなります。
  36.  
  37. 5.スクリプトファイルの構成
  38.     小文字、大文字は区別されます。
  39.     全角文字は、文字列とコメントの中にのみ使用できます。
  40.  
  41.   ・ラベル
  42.     ラベルは、スクリプトファイルの入り口、goto 文の飛び先を示すために使います。
  43.     ラベルには、A-Z、a-z、0-9、_(下線)が使えます。
  44.     ラベルを定義するには、行のはじめに「:」を置き、その後にラベルを続けます。
  45.     例
  46.     :login
  47.  
  48.   ・loginラベルとlogoutラベル
  49.     ログイン部分とログアウト部分の始まりを記述します。これらのラベルは必須です。
  50.  
  51.   ・コメント
  52.     行の「//」以降はコメントとして扱われます。コメントは実行時に無視されます。
  53.  
  54.   ・文字列
  55.     いくつかの命令は文字列をパラメータとして使用します。文字列は「"」で囲みま
  56.     す。文字列中には以下の特殊文字が使用できます。
  57.     \b    バックスペース
  58.     \n    ラインフィード
  59.     \r    キャリッジリターン(Enterキー)
  60.     \t    水平タブ(Tabキー)
  61.     \v    垂直タブ
  62.     \'    文字「'」
  63.     \"    文字「"」(「""」でも同じです)
  64.     \\    文字「\」
  65.     \ooo    ooo は8進数3桁で文字コードを指定
  66.     \xhh    hh は16進数2桁で文字コードを指定
  67.  
  68.   ・命令
  69.     命令は1行にひとつだけ記述する必要があります。複数行にまたがる命令は不可で
  70.   す。
  71.  
  72. 6.命令
  73. (1)trace 命令
  74.     書式    trace on|off
  75.     例      trace on
  76.  
  77.     onでトレースを始めます。off で終わらせます。
  78.     トレース中は、実行したスクリプトの行番号を「scripttr.txt」というファイルに
  79.     出力します。スクリプトのデバッグに使用します。
  80.  
  81. (2)send 命令
  82.     書式    send 文字列
  83.     例      send "OFF\r"
  84.  
  85.     文字列を送信します。改行は「\r」と記述します。
  86.  
  87. (3)goto 命令
  88.     書式    goto ラベル
  89.     例      goto label1
  90.  
  91.     ラベルのついた行に飛びます。
  92.  
  93. (5)end 命令
  94.     書式    end
  95.  
  96.     スクリプトの実行を終了します。
  97.     ログイン部分であれば、NifTerm の通常のオートパイロットに制御が移ります。
  98.     ログアウト部分であれば、オートパイロットを終了します。
  99.  
  100. (6)abort 命令
  101.     書式    abort 文字列
  102.  
  103.     スクリプトの実行を異常終了します。
  104.     NifTerm はオートパイロットを終了し、文字列をエラーログに表示します。
  105.  
  106. (7)disconnect命令
  107.     書式    disconnect
  108.  
  109.     回線を切断します。
  110.  
  111. (8)wait 命令
  112.     書式    wait 条件 [and 条件...] [goto ラベル]
  113.     例      wait left=="COM\r"
  114.  
  115.     条件が満たされたとき、ラベルで指定された命令(ないときは次の命令、次の命
  116.   令がor命令の時はさらにその次)に移ります。
  117.     それまで先には進みません。
  118.     or 命令により、複数の条件を待つことができます。
  119.  
  120.     条件には以下のものがあります。
  121.  
  122.     left==文字列
  123.     受信した行の左端が文字列と一致したとき条件が満たされます。
  124.  
  125.     right==文字列
  126.     受信した行の右端が文字列と一致したとき条件が満たされます。
  127.  
  128.     mid==文字列
  129.     受信した行が文字列を含むとき条件が満たされます。
  130.  
  131.     exact==文字列
  132.     受信した行が文字列と完全に一致したとき条件が満たされます。
  133.  
  134.     elapsed 時間
  135.     wait文に入ってから、指定時間が経過したとき条件が満たされます。時間はミリ秒
  136.     で指定します(1000 = 1秒)
  137.  
  138. (9)or 命令
  139.     書式    or 条件 [and 条件...] [goto ラベル]
  140.  
  141.     wait命令の代替条件を指定します。wait命令の直後または、or 命令の直後にしか
  142.     置けません。
  143.     wait命令の後に1個または複数のor命令を置くと、一連のwait命令または、or命令
  144.     のいずれかの条件が満たされるまで待つようにできます。
  145.  
  146.     条件はwait 命令と同じです。
  147.  
  148.     例:
  149.       wait left=="COM"
  150.         or left=="Clear" goto retry
  151.         or elapsed 10000 goto error
  152.  
  153.       "COM" で始まる行が受信されると、or の次の行に、
  154.       "Clear" で始まる行が受信されると、「:retry」の行に、
  155.       どちらも受信されないまま10秒経つと、「:error」の行に飛びます。
  156.  
  157.  
  158. 7.注意事項
  159.     goto 命令でループをくむときは、間にwait 命令が入るようにしてください。
  160.     wait 命令を実行せずにループすると、Windows がハング状態になります。
  161.  
  162.     受信行が終わっているか(改行しているか)確認するためには、右端が「\r」とマ
  163.     ッチするかで調べてください。複数行にまたがる文字列を1個のwait命令で検出す
  164.   ることはできません。
  165.  
  166.   プロンプトを待った後、文字列を送信し、さらに同じプロンプトを待つ場合は、次
  167.   の※のようにして、送った行のエコーバックを受信し終わるまで待ってください。
  168.   ※の行を入れないと、次のwait命令では前の応答済みプロンプトにヒットしてしま
  169.   います
  170.  
  171.     wait left=":"
  172.     send "1\r"
  173.     wait right=="\r"//※1\rを送ったプロンプトの行が終わるのを待つ
  174.     wait left=":"
  175.  
  176.  
  177. 8.サンプル
  178.  
  179.   実動するサンプルです。動かすときは点線の間を切り取って拡張子.LSCのファイル
  180.   にして4で説明したディレクトリに置いてください。
  181.  
  182. 8.1 CIS AP用
  183. ------------------------------------------------------------------------------
  184. // NifTerm ログインスクリプトサンプル for CompuServe AP
  185.  
  186. // これはサンプルです。実用を目的としたものではなく、スクリプトの文法の理解を
  187. // 助けることを目的としています。
  188.  
  189. // ログイン部分
  190. // モデムから「CONNECT」 が返ったあと、
  191. // ホストから「Enter Connection-ID」 が返る前までを記述します。
  192.  
  193. :login        // このラベルで始める必要があります。
  194. :login_send00
  195.     // 4秒待ちます
  196.     wait elapsed 4000
  197.  
  198.     // 改行 を送ります
  199.     send "\r"
  200.  
  201.     // 化けた文字を待ちます
  202.     // (化け文字は手でアクセスしたときのログ内容をYYMMDD.LOGからコピー)
  203.     wait right == ":"    // 化け文字が来たら次へ
  204.       or elapsed 30000 goto login_error        // 30 秒応答がなければ中止
  205.  
  206.     // 「NIFTY」改行 をおくります
  207.     send "NIFTY\r"
  208.     // あとはEnter Connection-IDが来るのでスクリプトは終わり
  209.     end
  210.  
  211. :login_error
  212.     disconnect  // 回線切断
  213.     abort "ログインできません"
  214.  
  215. // ログアウト部分
  216. // NIFTY に「BYE\r」 を送ったあと、
  217. // 回線切断までを記述します
  218.  
  219. :logout        // このラベルで始める必要があります
  220.     // 化けた文字を待ちます
  221.     // (化け文字は手でアクセスしたときのログ内容をYYMMDD.LOGからコピー)
  222.     wait right == ":"    // 化け文字が来たら次へ
  223.       or elapsed 30000 goto logout_error    // 30 秒応答がなければ中止
  224.  
  225.     // 「off」改行 をおくります
  226.     send "off\r"
  227.     end
  228.  
  229. :logout_error
  230.     disconnect  // 回線切断
  231.     abort ""
  232. ------------------------------------------------------------------------------
  233.  
  234. 8.2 FENICS ROAD1用
  235. ------------------------------------------------------------------------------
  236. // NifTerm ログインスクリプトサンプル for FENICS ROAD1
  237.  
  238. // これはサンプルです。実用を目的としたものではなく、スクリプトの文法の理解を
  239. // 助けることを目的としています。
  240.  
  241. // ログイン部分
  242. // モデムから「CONNECT」 が返ったあと、
  243. // ホストから「Enter Connection-ID」 が返る前までを記述します。
  244.  
  245. :login        // このラベルで始める必要があります。
  246. :login_send00
  247.     // 4秒待ちます
  248.     wait elapsed 4000
  249.  
  250.     // .00+ を送ります
  251.     send ".00+"
  252.  
  253.     // COM を待ちます
  254.     wait left == "COM" and right == "\r"    // COM が来たら次へ
  255.       or left == "21+" goto login_send00 // リトライ
  256.       or left == "00+" goto login_send00 // リトライ
  257.       or elapsed 30000 goto login_error        // 30 秒応答がなければ中止
  258.  
  259.     // 終わり
  260.     end
  261.  
  262. :login_error
  263.     disconnect  // 回線切断
  264.     abort "ログインできません"
  265.  
  266. // ログアウト部分
  267. // NIFTY に「BYE\r」 を送ったあと、
  268. // 回線切断までを記述します
  269.  
  270. :logout        // このラベルで始める必要があります
  271.     trace on
  272.     wait left == "01+"        // 01+ が来たら次へ
  273.       or elapsed 10000        // 10秒応答がなければ次へ
  274.  
  275.     disconnect                // 回線切断
  276.     end
  277.  
  278. ------------------------------------------------------------------------------
  279.  
  280. 8.3 FENICS ROAD2用
  281. ------------------------------------------------------------------------------
  282. // NifTerm ログインスクリプトサンプル for FENICS ROAD2
  283.  
  284. // これはサンプルです。実用を目的としたものではなく、スクリプトの文法の理解を
  285. // 助けることを目的としています。
  286.  
  287. // ログイン部分
  288. // モデムから「CONNECT」 が返ったあと、
  289. // ホストから「Enter Connection-ID」 が返る前までを記述します。
  290.  
  291. :login  // このラベルから始める必要があります。
  292.  
  293.     // 4秒待ちます
  294.     wait elapsed 4000
  295.  
  296.     // 「@P(改行)」を送ります
  297.     send "@P\r"
  298.  
  299.     // 「HOST NAME?」 で始まる行が終わるまで待ちます
  300.     wait left=="HOST NAME?" and right=="\r" // 正常
  301.       or elapsed 30000 goto login_error     // エラー
  302.  
  303. :login_wait_aster
  304.     // 「*」のプロンプトが出るまで待ちます
  305.     wait left=="*"                          // 正常
  306.       or elapsed 30000 goto login_error     // エラー
  307.  
  308.     // 「C NIF(改行)」を送ります
  309.     send "C NIF\r"
  310.  
  311.     // COM が返るまで待ちます
  312.     wait left=="COM" and right=="\r"         // 正常
  313.       or left=="Clear" goto login_wait_aster // リトライ
  314.       or elapsed 30000 goto login_error      // エラー
  315.  
  316.     // 終わり
  317.     end
  318.  
  319. :login_error
  320.     disconnect    // 回線切断
  321.     abort "ログインできません。"
  322.  
  323.  
  324.  
  325. // ログアウト部分
  326. // NIFTY に「BYE\r」 を送ったあと、
  327. // 回線切断までを記述します
  328.  
  329. :logout  // このラベルから始める必要があります
  330.     wait left=="*"
  331.     send "OFF\r"
  332.     end
  333. ------------------------------------------------------------------------------
  334.  
  335.                    -・-
  336.