ターミナル・スクリプトの作成と使用
ここでは、ターミナル・アプリケーションでスクリプト・ファイルを作成して使用する方法について説明します。
ターミナル・スクリプトが役立つ場合もありますが、通常はルーチンを作成して使用する方が (各ルーチン・プログラミング言語が非常に豊富なオプション・セットを提供しているので) はるかに簡単です。
ユーザ環境変数および共有ドライブ文字の指定は、InterSystems IRIS® データ・プラットフォーム・コントロール・サービスを実行するユーザ・アカウントによって定義されます。
スクリプト・ファイルのコンテンツ
スクリプトは 1 行指向で、行継続の表記規則がありません。各行は他の行から完全に分離されています。セミコロンで始まる行はコメントと見なされます。読みやすさを向上させるために空白行を自由に使用できます。通常、無効な行は無視されます。スクリプト・コマンドは、スペースおよび/またはタブの後に続けます。
スクリプト・コマンドを含む行の形式は以下のとおりです。引数は文字列または数値と解釈されます。
ScriptCommand: ScriptArguments
ここで ScriptCommand は、ターミナル・スクリプト・コマンドの 1 つで、ScriptArguments は、そのコマンドの引数リストです (具体的なコマンドの詳細を参照)。スクリプト・コマンドが 2 つ以上の単語で構成されている場合は、コマンドの各語間を 1 つのスペースで区切る必要があります。また、コマンドとコロンの間にはスペースを入れません。
引数のないコマンドを以下に示します。
ScriptCommand
制御の移動箇所の定義には、ラベルを使用できます。ラベルはドル記号 ($) で始まり、大文字と小文字が区別されません。ラベルには、スペースを埋め込むことができます。ラベルは、1 行に単独で記述する必要があります。
"学習モード" も参照してください。
スクリプト・コマンドの概要
次の表は、使用可能なスクリプト・コマンドの一覧です。詳細を示すリファレンス・コンテンツへのリンクが付いています。
コマンド | アクション |
---|---|
break | ブレークをサポートする通信デバイスにブレークを送信します。 |
call script | 現在のスクリプトを終了して、他のスクリプトを開始します。 |
case match | "wait for" コマンドの文字列が大文字/小文字まで一致する必要があるかどうかを指定します。 |
closelog | ログ・ファイルを閉じます。 |
connect | ホストに未接続の場合に、ホスト接続を強制します。 |
debug | スクリプトのデバッグを有効化または無効化します。 |
disconnect | ホストに接続されている場合に、接続の切断を強制します。 |
display | ディスプレイにテキストを送信します。 |
echo | 入力文字のエコーのオン/オフを切り替えます。 |
execute | Windows プログラムを実行します。 |
exit | スクリプトを終了します。 |
goto | 制御をスクリプト内の別の場所に移します。 |
if empty | 最後のテスト文字列が空の場合に、制御を移動します。 |
key_starttime | キーの時間計測の開始をシミュレートします。 |
key_stoptime | キーの時間計測の停止をシミュレートします。 |
key_timer | キーの時間計測のオン/オフを切り替えます。 |
logfile | ログ・ファイルを開始します。 |
multiwait for | 通信デバイスからの任意の複数文字列を待機します。 |
notify | ダイアログ・ボックスを表示して、ユーザからの応答を待ちます。 |
on error | タイマが起動された場合の分岐先ラベルを指定します。 |
pause | スクリプトを一時停止します。 |
return | スクリプト・ファイルのサブルーチンから戻ります。 |
send | 通信デバイスにテキストを送信します。 |
subroutine | スクリプト・ファイル内のサブルーチンを呼び出します。 |
terminate | エミュレータを完全に終了します。 |
test | テスト対象の文字列を構築します。 |
timer | "wait for" コマンド用のタイマを制御します。 |
title | ウィンドウ・タイトルを設定します。 |
wait for | 通信デバイスからの特定の文字列を待機します。 |
これらのコマンドのリファレンス情報は、"スクリプト・コマンドのリファレンス" を参照してください。
スクリプト・コマンドの引数
引数の前後のスペースおよびタブは、すべて無視されます。
数値引数は、すべて整数値です。必須の数値引数が指定されていない場合は、既定で 0 になります。また、OFF は 0 と同等で、ON は 1 と同等です。
文字列は、コマンドの後に続く行上の個々のデータを連結したものにすぎません (先頭と末尾の空白は除く)。引用符は必要ありません。また、次のコマンド行を使用することで、パラメータ置換が実行されます。
<P1>, <P2>, ..., <Pn>
これで、<Pn> が、n 番目のコマンド行パラメータに置換されます。
操作を簡略化するために、特定の ASCII 文字には、この後のテーブルに示す同等のショートカット表記が用意されています。
NUL (000) 以外のすべての ASCII (拡張) 文字は、<ddd> によって生成できます。ddd はその文字を表す 10 進数値です。
文字 | 解釈 | 送信シーケンス |
---|---|---|
<CR> | キャリッジ・リターン | <13> |
<F10> | F10 キー | <27>[21- |
<F7> | F7 キー | <27>[18- |
<DO> | Do キー | <27>[29- |
<TAB> | Tab キー | <9> |
<LF> | 改行 | <10> |
<ESC> | Esc キー | <27> |
<DCS> | デバイス制御文字列の接頭部 | <144> |
<ST> | デバイス制御文字列の終了 | <156> |
<EMU> | 拡張エミュレータ・コマンドの開始 | <144>i |
<NL> | 新規行 | <CR><LF> |
<CSI> | 制御文字列の接頭部 | <155> |
スクリプト例
スクリプトの例を以下に示します。
; initialization -- turn match off to make comparisons more lenient
case match: off
; wait for the terminal to initialize and ask for our identification
echo: off
wait for:Username
send: SYS<CR>
wait for:Password
send: XXX<CR>
title: Terminal Example
echo: on
; log everything in a log
logfile: C:\TermExample.log
; wait a second
pause:10
; display a header to let the user know we are ready
; you need <CR><LF> because "display" does not
; have a prompt to advance to another line
display:<CR><LF>
display:------------------------------<CR><LF>
display:<<< Terminal Example >>><CR><LF>
display:------------------------------<CR><LF>
; wait a second
pause:10
; switch to the USER namespace
send: set $namespace="USER"<CR>
wait for:USER>
; display some basic information about the system
; Use the debugging routine to do so
send: Do ^%STACK<CR>
wait for: action:
; have it outline our options
send: ?<CR>
wait for: action:
; wait 5 seconds for user to absorb
pause: 50
; ask for the basic process info
send: *s
pause: 50
send: <CR>
wait for: action:
; wait another 10 seconds
pause: 100
; finish the session
send: <CR>
; close the log file
closelog
; finished
terminate
スクリプトの起動
通常、スクリプト・ファイル (既定の拡張子は .scr) は作業ディレクトリにありますが、任意の場所に配置可能です。
スクリプトを実行するには、[ファイル]→[スクリプト] を選択するか、Alt-S を押します。Windows の標準的なファイル検索ボックスが表示され、そこでスクリプトを選択します。
コマンド行の引数としてスクリプトが指定されている場合は、コマンド・モードをロックしているスイッチがなければスクリプトが直ちに開始され、スイッチがあればホスト接続が確立されるまで開始が延期されます。
通信オプションをシングル・モードに編集することは、ターミナル・アプリケーションをシングル・オプションにロックすることと同じです。したがって、スクリプト・ファイルの起動はホスト接続の確立後まで延期されます。
スクリプトの一時停止
スクリプトの実行を停止するには、[ファイル]→[一時停止] を選択するか、Alt-P を押します。現在のスクリプトを一時停止することを確認するプロンプトが表示されます。
スクリプトの停止
スクリプトを停止するには、[ファイル]→[スクリプト] を選択するか、Alt-S を押します。現在のスクリプトを停止することを確認するプロンプトが表示されます。