指定した時間が過ぎるまで,現在のプロセスを待ち状態にします。WAITコマンドは, コマンド・プロシージャの中でプロシージャ自体の処理を遅らせるため, またはプロシージャに含まれるいくつかのコマンドの処理を遅らせるために使用します。
WAIT デルタ時間
時:分:秒.ミリ秒
各フィールドと,指定できる範囲を示します。
時 | 0から23までの整数 |
分 | 0から59までの整数 |
秒 | 0から59までの整数 |
ミリ秒 | 0から99までの整数 |
コロン(:)およびピリオド(.)は,区切り文字として必要です。 また時間のフィールドが0の場合でも,デルタ時間はコロンからではなく, 時から指定しなければなりません。デルタ時間には, 通常は日フィールドが含まれますが,このコマンドでは指定してはいけません。
デルタ時間の指定についての詳細は, 『OpenVMSユーザーズ・マニュアル』 またはオンライン・ヘルプの DCL_Tips トピック (Date_Time サブトピック) を参照してください。
WAITコマンドを会話型モードで実行した場合でも, 時間の入力を要求するプロンプトは表示されません。 しかし,時間を指定しなかった場合はこのコマンドは無効です。
$ LOOP: $ RUN KUDOS $ WAIT 00:10 $ GOTO LOOPこのコマンド・プロシージャは,KUDOSというプログラム・イメージを実行します。 RUNコマンドを使用してプログラムを実行した後,WAITコマンドは, GOTOコマンドの実行を10分だけ遅らせます。 時間フィールドに対して,00が指定されている点に注意してください。 これは,時間指定をコロンで開始することはできないためです。 10分後にGOTOコマンドは実行され,プロシージャはLOOPというラベルに制御を渡し, KUDOSプログラムがもう一度実行されます。 このプロシージャは割り込みがかけられるまで,または終了されるまで繰り返します。
このプロシージャを会話型モードで実行している場合には,Ctrl/CまたはCtrl/Yを押し, STOPコマンドまたは新しいイメージをプロセスの中で実行する他の DCLコマンドを実行すると,このプロシージャは終了します。 このプロシージャがバッチ・ジョブで実行されている場合には, DELETE/ENTRYコマンドを使用して終了します。
論理名によって指定されたオープンされたファイルに, 指定したデータを書き込みます。 データは,オープンされたファイルに1レコードとして書き込まれます。
修飾子はすべて,式に先行して指定しなければなりません。
WRITE 論理名 式[,...]
コンマ(,)で区切ることにより複数の式を指定できます。コマンド・インタプリタは, 各項目を1つのレコードに連結し,そのレコードを出力ファイルに書き込みます。
書き込むことができるレコードの最大サイズは,1024バイトです。 またレコードの一部として指定される, あらゆるシンボルの値は 255を越えてはなりません。 ただし /SYMBOL修飾子を指定している場合は例外となり, この場合の最大サイズは2048バイトであり, シンボルの値は255文字を越えることができます。
レコードをファイルに書き込む場合,そのファイルは,OPENコマンドに /WRITEまたは /APPEND修飾子を使用してオープンにしておかなければなりません。 ただし論理名 SYS$INPUT,SYS$OUTPUT,SYS$ERROR,および SYS$COMMANDにより識別されるプロセス・パーマネント・ファイルは, 明示的にオープンにしておく必要はありません。
/SYMBOL修飾子を指定しない場合は, DCLによりコマンドと完全な文字列式は1024バイトのバッファに記憶されます。 /SYMBOL修飾子を指定すると,DCLにより1つまたは複数のシンボルが解釈され, 展開された文字列は別々の2048バイトのバッファに記憶されます。 その後,書き込み操作が行われます。 このため,レコードが1000バイト以上ある場合は,/SYMBOL修飾子を指定してください。
指定する各式はシンボルでなければなりません。/SYMBOL修飾子を使用する場合には, 文字列式(つまり引用符で囲まれた文字列)は指定できません。
/SYMBOL修飾子を使用しない場合には, 式を含めたコマンド全体が1024バイトのバッファに記憶されます。
順編成ファイルに対してWRITE/UPDATEコマンドを使用する場合には, 同じサイズのレコードと置き換えなければなりません。
$ WRITE SYS$OUTPUT "Beginning second phase of tests"この例でWRITEコマンドは,1行のテキストを現在の出力装置に書き込みます。
$ OPEN/APPEND OUTPUT_FILE TRNTO::DBA1:[PGM]PLAN.DAT $ WRITE OUTPUT_FILE "BEGINNING PHASE 3"この例でOPEN/APPENDコマンドは,遠隔ノードTRNTOでファイルPLAN.DATをオープンし, ファイルの最後にポインタを設定します。 WRITEコマンドはファイルPLAN.DATの最後にレコードを書き込みます。
$ OPEN/WRITE OUTPUT_FILE TESTFILE.DAT $ INQUIRE ID "Assign Test-id Number" $ WRITE/ERROR=WRITE_ERROR OUTPUT_FILE "Test-id is ",ID $ WRITE/ERROR=WRITE_ERROR OUTPUT_FILE "" $ ! $ WRITE_LOOP: . . . $ GOTO WRITE_LOOP $ END_LOOP: $ ! $ CLOSE OUTPUT_FILE $ PRINT TESTFILE.DAT $ EXIT $ ! $ WRITE_ERROR: $ WRITE SYS$OUTPUT "There was a WRITE error." $ CLOSE OUTPUT_FILE $ EXITOPENコマンドでファイルTESTFILE.DATをオープンし, INQUIREコマンドでシンボルIDに識別番号を割り当て, WRITEコマンドでシンボルIDと空行を書いています。
ラベルWRITE_LOOPとEND_LOOPの間では, 適当な処理を行って他の情報をファイルに書いています。処理が終了すると, 制御はラベルEND_LOOPに移りCLOSEコマンドでファイルをクローズし, PRINTコマンドでプリンタへ出力しています。
ラベルWRITE_ERRORは/ERROR修飾子の対象として使用され, WRITEコマンド実行時にエラーが発生した場合は,ここへ制御が移ります。
$ OPEN/APPEND MYFILE [JONES]TESTING.DAT $ WRITE/SYMBOL MYFILE A,B,Cこの例ではシンボルA,B,Cがすでに定義済みであると仮定されています。 OPEN/APPENDコマンドは[JONES]TESTING.DATというファイルをオープンし, ファイルの最後にポインタを設定します。 WRITE/SYMBOLコマンドはシンボルA,B,Cの値を連結し, このデータをファイルの最後に新しいレコードとして書き込みます。