コマンド・プロシージャ内でラベルを付けられたサブルーチンへ制御を移します。
CALL ラベル [パラメータ[...]]
ラベルは,現在のコマンド・プロシージャのCALL文の前に, あるいは後に置くことができます。 コマンド・プロシージャ内のラベルは,コロン(:)で終了してください。 サブルーチンのラベルは一意でなければなりません。
より内側のプロシージャ・レベルのラベルは, 外側のプロシージャレベルからはアクセスできません。次の例を参照してください。
$CALL B $SUBROUTINE A $ B: SUBROUTINE $ ENDSUBROUTINE $ENDSUBROUTINE
この例では,サブルーチンA内のラベルBは, サブルーチンAより外側ではアクセスできません。
パラメータは,英数字または特殊文字を含む文字列値として指定することができますが, 次の制約があります。
$ CALL SUB1 "Never say ""quit"""
制御がSUB1に移るとき,パラメータP1には次の文字列が割り当てられます。
Never say "quit"
文字列に引用符が含まれており,スペースが含まれていない場合には, 引用符はそのまま保存され,引用符で囲まれた英字は小文字のまま保存されます。 次の例を参照してください。
$ CALL SUB2 abc"def"ghi
制御がSUB2に移るとき,パラメータP1には次の文字列を割り当てられます。
ABCdefGHI
シンボルをパラメータとして使用する場合には, シンボル置換を実行するために,シンボルを一重引用符(` ')で囲む必要があります。 次の例を参照してください。
$ NAME = "JOHNSON" $ CALL INFO 'NAME'
一重引用符を使用すると, "JOHNSON"という値が"NAME"というシンボルと置き換えられます。 したがって,"JOHNSON"というパラメータがP1として,サブルーチンINFOに渡されます。
CALLコマンドを使用してサブルーチンに制御を移すと, 新しいプロシージャ・レベルが作成され, 指定された引数の値にP1からP8までのシンボルが割り当てられます。 EXITコマンドが実行されるまで,サブルーチンでの実行が続きます。 EXITコマンドが実行されると,制御はCALLコマンドの次のコマンド行に移ります。
プロシージャは,最大で32レベルまでネストさせることができます。この中には, コマンド・プロシージャの任意の組み合わせやサブルーチンの呼び出しを含めることができます。 ネストしたサブルーチン構造内で定義されたローカル・シンボルやラベルは, @コマンドでルーチンを起動した場合と同様に扱われます。 つまり,ラベルはそれを定義したサブルーチン・レベルでのみ有効です。
より外側のレベルで定義されたローカル・シンボルは, それより内部のネスト・レベルのサブルーチンでは使用できます。 つまり,ローカル・シンボルの読み込みはできますが書き込みはできません。 より外側のサブルーチン・レベルでローカルなシンボルに値を割り当てると, 現在のサブルーチン・レベルに新しいシンボルが作成されます。 この時,より外側のプロシージャ・レベルのシンボルは変更されません。
SUBROUTINEおよびENDSUBROUTINEコマンドは, サブルーチンの開始および終了を定義します。 サブルーチンへのエントリ・ポイントを定義するラベルは, SUBROUTINEコマンドの直前または同一コマンド行上で指定しなければなりません。
1つのサブルーチンには,1つのエントリ・ポイントしか含めることができません。 サブルーチンは,最初の実行可能文SUBROUTINEコマンドで開始しなければなりません。 プロシージャ内でEXITコマンドを指定しないと, ENDSUBROUTINEコマンドがEXITコマンドと同じ処置を行います。
SUBROUTINEコマンドは, 実行されるコンテキストに依存する2つの異なる処理を行います。 CALLコマンドの結果としてSUBROUTINEコマンドを実行する場合は, 新しいプロシージャ・レベルを開始し, CALLコマンドで指定したようにP1からP8までのパラメータを定義し, サブルーチンの実行を開始します。 CALLコマンドを使用せずに起動されたプロシージャの実行フローで SUBROUTINE動詞が検出された場合は,SUBROUTINE以降のすべてのコマンドは, 対応するENDSUBROUTINEコマンドが検出されるコマンドまでスキップされます。
注意
- SUBROUTINEおよびENDSUBROUTINEコマンドは,3文字以下に短縮することはできません。
コマンド・プロシージャからの出力先を変更するには, SYS$OUTPUTの定義を変更することもできます。 コマンド・プロシージャの1行目として次のコマンドを指定すると, 出力は指定したファイルに送られます。
$ DEFINE SYS$OUTPUT filespec
このプロシージャが終了すると,SYS$OUTPUTは元の等価文字列に戻されます。 この方法を使うと,コマンド・プロシージャの実行時に /OUTPUT修飾子を使用した場合と同じ結果になります。
$ $! CALL.COM $ $! Define subroutine SUB1 $! $ SUB1: SUBROUTINE . . . $ CALL SUB2 !Invoke SUB2 from within SUB1 . . . $ @FILE !Invoke another procedure command file . . . $ EXIT $ ENDSUBROUTINE !End of SUB1 definition $! $! Define subroutine SUB2 $! $ SUB2: SUBROUTINE . . . $ EXIT $ ENDSUBROUTINE !End of SUB2 definition $! $! Start of main routine. At this point, both SUB1 and SUB2 $! have been defined but none of the previous commands have $! been executed. $! $ START: $ CALL/OUTPUT=NAMES.LOG SUB1 "THIS IS P1" . . . $ CALL SUB2 "THIS IS P1" "THIS IS P2" . . . $ EXIT !Exit this command procedure fileこのコマンド・プロシージャは, ラベルの付いたサブルーチンへ制御を移すための CALLコマンドの使い方を示しています。 この例は,サブルーチンあるいは別のコマンド・ファイルを, サブルーチンとして呼べることを示します。 CALLコマンドは,出力ファイルをNAMES.LOGとして,サブルーチン SUB1を起動します。 また,他のユーザにファイルへの書き込みアクセスを認めます。 サブルーチンSUB2はSUB1に呼ばれます。 プロシージャはSUB2を実行し,次にコマンド・プロシージャFILE.COMを起動するために @ (プロシージャ実行)コマンドを用います。SUB1のコマンドがすべて実行されると, メイン・プロシージャのCALLコマンドは次にSUB2を呼び出します。 SUB2が実行されるまで,プロシージャは継続します。
RUNコマンドまたは $SCHDWKシステム・サービスでスケジューリングされたウェイクアップ要求を含め, 指定したプロセスに対するウェイクアップ要求を取り消します。
次のいずれか1つが必要です。
CANCEL [[ノード名::]プロセス名]
現在のプロセスとは異なる OpenVMS Clusterシステム上のノード名を指定することはできません。
ここで指定するプロセスは, 現在のプロセスと同一グループ内のプロセスでなければなりません。
CANCELコマンドは,指定したプロセスを削除することはありません。 CANCELコマンドを発行した時に,そのプロセスでイメージを実行している場合は, イメージの実行終了後,そのプロセスは終了するのではなく,ハイバネートします。
ウェイクアップ要求が取り消されたハイバネートしているプロセスを削除するには, STOPコマンドを使用します。SHOW PROCESSコマンドで/SUBPROCESS修飾子を指定すると, サブプロセスが削除されたかどうか確認できます。
ローカル・プロセス名は,遠隔プロセス名と似ています。 そのためATHENS::SMITHと指定すると,システムは, ノードATHENSのプロセスSMITHをチェックする前に, ローカル・ノードでプロセスATHENS::SMITHをチェックします。
/IDENTIFICATION=pid修飾子を使用して,プロセス名を指定することもできます。 /IDENTIFICATION修飾子とともにプロセス名パラメータを使用すると, 修飾子がパラメータを上書きします。 プロセス名パラメータも/IDENTIFICATION修飾子も指定しないと, CANCELコマンドは現在のプロセス(つまりCANCELコマンドを発行するプロセス) に対してスケジューリングされているウェイクアップ要求を取り消します。
$ CANCEL CALENDARこの例でCANCELコマンドは, プロセス名がCALENDARであるプロセスに対するウェイクアップ要求を取り消します。 STOPコマンドで削除されるまで,CALENDARプロセスはハイバネートします。
$ RUN/SCHEDULE=14:00 STATUS %RUN-S-PROC_ID, identification of created process is 0013012A . . . $ CANCEL/IDENTIFICATION=13012Aこの例でRUNコマンドは,イメージSTATUSを実行するプロセスを作成します。 このプロセスはハイバネートし, 14:00に実行を開始するようスケジューリングされています。 このプロセスがSTATUSを実行する前に, CANCELコマンドはウェイクアップ要求を取り消しています。
$ RUN/PROCESS_NAME=LIBRA/INTERVAL=1:00 LIBRA %RUN-S-PROC_ID, identification of created process is 00130027 . . . $ CANCEL LIBRA $ STOP LIBRAこの例のRUNコマンドは,LIBRAという名前のサブプロセスを作成して, イメージLIBRA.EXEを1時間に1回実行します。
次にCANCELコマンドでウェイクアップ要求を取り消します。 このプロセスは存在しつづけますが,STOPコマンドで削除するまで, ハイバネートします。
OPENコマンドによりオープンされているファイルをクローズし, 関連する論理名を解除します。
CLOSE 論理名[:]
$ OPEN/READ INPUT_FILE TEST.DAT $ READ_LOOP: $ READ/END_OF_FILE=NO_MORE INPUT_FILE DATA_LINE . . . $ GOTO READ_LOOP $ NO_MORE: $ CLOSE INPUT_FILEOPENコマンドは,TEST.DATというファイルをオープンし, そのファイルにINPUT_FILEという論理名を割り当てます。 READコマンドの/END_OF_FILE修飾子は,ファイルの最後に到達したときに, コマンド・インタプリタが NO_MOREというラベルの行に制御を渡すことを要求しています。 CLOSEコマンドは,入力ファイルをクローズします。
$ @READFILE [Ctrl/Y] $ STOP $ SHOW LOGICAL/PROCESS . . . "INFILE" = "_DB1" "OUTFILE" = "_DB1" $ CLOSE INFILE $ CLOSE OUTFILECTRL/Yは,READFILE.COMというコマンド・プロシージャの実行に割り込みをかけます。 そのあと,STOPコマンドが,プロシージャを停止します。 SHOW LOGICAL/PROCESSコマンドは, プロセス論理名テーブルに現在登録されている名前を表示します。 このコマンドで表示される名前には,READFILE.COMプロシージャの中で, OPENコマンドによって割り当てられたINFILEとOUTFILEという論理名も含まれています。
CLOSEコマンドは,これらのファイルをクローズし,論理名の割り当てを解除します。
ユーザが使用している物理端末を,他のプロセスと接続している仮想端末と接続します。
ユーザは,ユーザの利用者識別コード(UIC) を持つプロセスに接続している仮想端末に接続しなければなりません。 他の物理端末は,仮想端末に接続しません。
CONNECT 仮想端末名
通信回線を使用しているシステムにログ・インしている場合, CONNECTコマンドは便利です。 回線上にノイズがありキャリア・シグナルを失った場合,ユーザのプロセスは終了しません。 再度ログ・インした後に元のプロセスに再接続し, 2つ目のプロセスからログ・アウトすることができます。
CONNECTコマンドを使用するためには, OpenVMS Alphaシステム上でSystem Managerユーティリティ(SYSMAN), およびOpenVMS VAXシステム上でSystem Generationユーティリティ(SYSGEN)で, 仮想端末機能が許可されていなければなりません。
利用者が使用しているシステムで仮想端末機能が許可されている場合は, SET TERMINAL/DISCONNECT/PERMANENTコマンドを使用して, 特定の物理端末の仮想端末属性を許可することができます。この属性を許可すると, ある利用者がその物理端末にログ・インする時に仮想端末が作成されます。 物理端末は仮想端末に接続され,仮想端末はプロセスに接続されます。
新しい仮想端末に対しては, まずTTY_DEFCHAR2システム・パラメータのTT2$V_DISCONNECTビットを設定し, システムを再ブートする必要があります。 ttdriver を使用して仮想装置VTA0を作成すると,これらの処理が行われます。 次の例を参照してください。Alphaシステムの場合は,次のように入力します。
$ RUN SYSMAN IO CONNECT/NOADAPTER - _$ /DRIVER=SYS$LOADABLE_IMAGES:SYS$TTDRIVER VTA0:
VAXシステムの場合は,次のように入力します。
$ RUN SYSGEN CONNECT /NOADAPTER/DRIVER=TTDRIVER VTA0:
/NOLOGOUT修飾子を指定していない場合は, 物理端末と仮想端末との接続が切断されると, ユーザは現在のプロセスからログ・アウトしてしまいます (またこのプロセスで実行中のイメージは停止します)。
/NOLOGOUT修飾子を指定していると,プロセスは仮想端末に接続されたままです。 このプロセスでイメージを実行している場合は, プロセスが端末からの入力を必要とする,または端末に書き込みを行おうとするまで, イメージは引き続き実行されます。プロセスが端末からの入力を必要とする時, または端末に書き込みを行おうとする時は,物理端末が仮想端末に再接続するまで, プロセスは待ち状態になります。
仮想端末を使用していなくても,仮想端末に接続することができます。 ただし現在のプロセスをログ・アウトするためには, CONNECTコマンドに/LOGOUT修飾子を指定しなければなりません。 仮想端末から他の仮想端末に接続する場合は,/NOLOGOUT修飾子を指定すると, 現在のプロセスも残すことができます。
/CONTINUE修飾子を/LOGOUT修飾子と同時に指定することはできません。
仮想端末に接続していないプロセスからCONNECTコマンドを実行する場合は, /LOGOUT修飾子を指定しなければなりません。 /LOGOUT修飾子を指定しないと,DCLはエラー・メッセージを表示します。
/LOGOUT修飾子を/CONTINUE修飾子と同時に指定することはできません。
$ RUN AVERAGE [Ctrl/Y] $ CONNECT/CONTINUE VTA72RUNコマンドを使用して,イメージAVERAGE.EXEを実行します。 このRUNコマンドは,仮想端末に接続していない端末から発行しています。 次にCtrl/Yを押して,イメージに割り込みをかけます。 その後CONNECTコマンドに/CONTINUE修飾子を指定します。 これによりCONTINUEコマンドが発行され,イメージの実行が継続され, ユーザは他の仮想端末に接続します。 ユーザは後で元のプロセスに再度接続することができます。
$ SHOW USERS/FULL VAX/VMS User Processes at 22-DEC-1998 14:11:56.91 Total number of users = 51, number of processes = 158 Username Node Process Name PID Terminal KIDDER BUKETT KIDDER 29A0015E FTA3: KIDDER BUKETT _FTA4: 29A0015F FTA4: KIDDER RACEY1 KIDDER 05800062 FTA5: KIDDER RACEY1 DECW$MWM 0580005D MBA44: Disconnected KIDDER RACEY1 DECW$SESSION 05800059 KIDDER RACEY1 VUE$KIDDER_2 0580005E (subprocess of 05800059) KIDDER RACEY1 VUE$KIDDER_3 0580005F MBA51: Disconnected KIDDER RACEY1 VUE$KIDDER_4 05800060 MBA53: Disconnected MACKRILL BUKETT MACKRILL 29A002C1 FTA7: MACKRILL BUKETT MACKRILL_1 29A006C2 (subprocess of 29A002C1) MACKRILL BUKETT MACKRILL_2 29A00244 (subprocess of 29A002C1) MACKRILL HAMLET MACKRILL 24800126 FTA6: MACKRILL HAMLET DECW$BANNER 24800155 (subprocess of 24800126) MACKRILL HAMLET DECW$MWM 2480011F MBA170: Disconnected MACKRILL HAMLET DECW$SESSION 2480011D FTA5: . . . $ CONNECT VTA273 MACKRILL logged out at 22-DEC-1998 14:12:04.53 $この例は, キャリア・シグナルを失った後,元のプロセスに再度接続する方法を示しています。 まず再度ログ・インして新しいプロセスを作成します。ログ・インしたら, SHOW USERS/FULLコマンドを実行して,元のプロセスの仮想端末名を確認します。 次にCONNECTコマンドを実行して,元のプロセスを実行していた仮想端末に接続します。 特に修飾子を指定していないので, CONNECTコマンドを発行したプロセスは,ログ・アウトします。
元のプロセスに再度接続したら, キャリア・シグナルを失った時に実行していたイメージの実行を続けます。 この例では,接続が切断された時,ユーザMACKRILLは会話型レベルでした。
Ctrl/YまたはCtrl/Cを押すことにより割り込まれたDCLコマンド,プログラム, コマンド・プロシージャの実行を再開します。 他のイメージやコマンド・プロシージャを起動した後では,再開できません。
CONTINUE
CONTINUEコマンドは,「C」1文字に短縮できます。
CONTINUEコマンドは,コマンド・プロシージャで, IFコマンドまたはONコマンドのターゲット・コマンドとして使用できます。 CONTINUEコマンドは,GOTOコマンドのターゲット・ラベルの後で使用しても, ターゲット・コマンドになります。 また,CONTINUEコマンドは,VAX FORTRAN PAUSE文または VAX COBOL-74 STOPリテラル文を実行したプログラムの処理再開にも使用できます。
$ RUN MYPROGRAM_A [Ctrl/Y] $ SHOW TIME 14-DEC-1998 13:40:12 $ CONTINUERUNコマンドは,MYPROGRAM_Aというプログラムを実行します。 プログラム実行中にCTRL/Yを押すと,イメージに割り込みがかけられます。 SHOW TIMEコマンドで,現在の日付と時刻を表示しています。 このあとのCONTINUEコマンドは,MYPROGRAM_Aというイメージの実行を再開します。
$ ON SEVERE_ERROR THEN CONTINUEこのコマンド・プロシージャ文は,コマンドやプログラムの実行により警告状態, エラー状態,重大なエラー状態を示す値が戻された場合でも, プロシージャの実行を継続することをコマンド・インタプリタに指示します。 このON文は, エラーまたは重大なエラーが発生した際にはプロシージャを終了するという省略時の動作を無効にします。
Convertユーティリティを起動します。 このユーティリティはあるファイルのレコードを別のファイルにコピーし, 入力ファイルの編成や形式を出力ファイルの編成や形式に変更します。
Convertユーティリティについての詳細は, 『OpenVMS Record Management Utilities Reference Manual』あるいはオンライン・ヘルプを参照してください。
CONVERT 入力ファイル指定[,...] 出力ファイル指定
CDAにサポートされている変更可能な入力ファイルを, 変更可能なまたは最終的な形式の出力ファイルに変換します。
注意
- DECwindows Motif for OpenVMSがシステムにインストールされている時のみ, このコマンドを使用することができます。
CONVERT/DOCUMENT 入力ファイル指定 出力ファイル指定
入力ファイル形式のための入力コンバータが存在し, 出力ファイル形式のための出力コンバータが存在している場合は, 入力ファイルのファイル形式を別のファイル形式に変換することができます。 省略時の設定の入力ファイルおよび出力ファイルの形式は, DDIF (DIGITAL Document Interchange Format)です。 DDIFは,テキスト,グラフィック, イメージなどを含めることができる複合文書の格納および変換のための標準形式です。
他のいくつかのコンバータと同様にDDIF入力コンバータおよびDDIF出力コンバータは, CDA Base Services for DECwindows Motif for OpenVMS といっしょにインストールされます。 入力ファイル形式を他の出力ファイル形式に変換するときに, 変更を最小限に抑えるようなオプションを指定できるコンバータもあります。
CONVERT/DOCUMENTコマンドに/OPTIONS修飾子を指定する前に, 必要なオプションを書いたオプション・ファイルを作成しておきます。
すべてのコンバータは,メッセージ・ログ・オプションをサポートしています。 変換中の情報メッセージおよびエラー・メッセージは, ユーザが指定したファイルに書き込まれます。
CDA Base Services for DECwindows Motif for OpenVMS とともに提供される入力コンバータ, およびサポートされるファイル形式の省略時のファイル・タイプを,次に示します。
入力形式 | ファイル・タイプ |
---|---|
DDIF | .DDIF |
DTIF | .DTIF |
TEXT | .TXT |
CDA Base Services for DECwindows Motif for OpenVMS とともに提供される出力コンバータ, およびサポートされるファイル形式の省略時のファイル・タイプを,次に示します。
出力形式 | ファイル・タイプ |
---|---|
DDIF | .DDIF |
DTIF | .DTIF |
TEXT | .TXT |
PS | .PS |
ANALYSIS | .CDA$ANALYSIS |
弊社が提供するCDA Converter Libraryは,いくつかの文書,グラフィック,イメージ, データ・テーブル入力コンバータ, およびデータ・テーブル出力コンバータを提供しています。ソフトウェア・ベンダも, CDAに準拠したアプリケーションやコンバータを提供しています。 システムで使用できるコンバータについては,システム管理者に相談してください。
分析出力コンバータは,入力ファイルの中間表現の分析を行います。 分析出力ファイルには, 指定したオブジェクトと入力ファイルに格納された値が含まれます。 アプリケーション・プログラマは, デバッグのために分析出力ファイルを使用することができます。
アプリケーションのエンド・ユーザは分析出力ファイルを使用して, 複数のサブファイルへの参照やリンクを入力ファイルに含めるかどうか, 決めることができます。 各サブファイルは,ネットワークを介して別々にコピーされなければなりません。 これは,入力ファイルをネットワークを介して転送しても, サブファイルは自動的には転送されないためです。
分析出力ファイルで,文字列"ERF_"という文字列を検索することができます。 入力ファイルであるDDIF複合文書とリンクしたイメージ・ファイル"griffin.img"で, 文字列 "ERF_" を検索した例を次に示します。
ERF_LABEL ISO LATIN1 "griffin.img" ! Char. string. ERF_LABEL TYPE RMS_LABEL TYPE "$RMS: ERF_CONTROL COPY_REFERENCE ! Integer = 1
分析出力ファイルは,プログラマが使用することを仮定しています。 入力ファイル中のコード化された情報を変更することは前提としておらず, ファイルの内容を調べることを前提としています。 上記の例では,分析出力ファイル中の, リンクされたファイルへの参照を検索する方法を示しています。
DDIF入力コンバータは,DDIF入力ファイルを, 指定した出力ファイル形式に引き続き変換される中間表現に変換します。 データのマッピング,変換に関する制限事項,外部ファイル参照,および DDIF入力コンバータに関連した文書構文エラーについては以下を参照してください。
DDIF入力ファイルの情報を,中間表現に直接マップします。
中間表現に変換する時,DDIF入力ファイルの情報が消失することはありません。
ただしDDIF入力ファイルで, DDIF入力コンバータが理解するバージョンより新しいバージョンの DDIF文法を使用している場合は,新文法で示される要素は消失します。
DDIF入力フィアル中の外部ファイル参照はすべて,中間表現に変換されます。
出力コンバータが要求すればコンバータ・カーネルは外部参照を解決できますが, DDIF入力コンバータは外部参照を解決を試みません。
DDIF入力ファイルに文書構文エラーがあると, 回復不可能な入力処理エラーが発生します。 DDIF入力コンバータが文書構文エラーを検出すると,変換処理は停止され, それ以降入力処理は行われません。
DDIF出力コンバータは,入力ファイルの中間表現からDDIF出力ファイルを作成します。 データのマッピング,およびDDIF出力コンバータに関連する変換の制限事項を, 次に示します。
入力ファイルの中間表現中の情報を,DDIF出力ファイルに直接マップします。
DDIF出力ファイルに変換する時, 入力ファイルの中間表現の情報が消失することはありません。
DTIF入力コンバータは,DTIF入力ファイルを, 指定した出力ファイル形式に引き続き変換される中間表現に変換します。 データのマッピング,変換に関する制限事項,外部ファイル参照,および DTIF入力コンバータに関連した文書構文エラーについては以下を参照してください。
DTIF入力ファイルの情報を,中間表現に直接マップします。
中間表現に変換する時,DTIF入力ファイルの情報が消失することはありません。
ただしDTIF入力ファイルで, DTIFフロント・エンドが理解するバージョンより新しいバージョンの DTIF文法を使用している場合は,新文法で示される要素は消失します。
DTIF入力フィアル中の外部ファイル参照はすべて,中間表現に変換されます。
DTIF入力コンバータは,外部参照の解決を試みません。
DTIF入力ファイルに文書構文エラーがあると, 回復不可能な入力処理エラーが発生します。 DTIF入力コンバータが文書構文エラーを検出すると,変換処理は停止され, それ以降入力処理は行われません。
DTIF出力コンバータは,入力ファイルの中間表現からDTIF出力ファイルを作成します。 データのマッピング,およびDTIF出力コンバータに関連する変換の制限事項を, 次に示します。
入力ファイルの中間表現中の情報を,DTIF出力ファイルに直接マップします。
DTIF出力ファイルに変換する時, 入力ファイルの中間表現の情報が消失することはありません。
DTIF出力コンバータは, 入力ファイルの中間表現に格納されている外部ファイル参照を変換しますが, 外部参照の解決は試みません。
テキスト入力コンバータは,テキスト(ISO Latin1)入力ファイルを, 指定した出力ファイル形式に引き続き変換される中間表現に変換します。 データのマッピング,変換に関する制限事項,外部ファイル参照, テキスト入力コンバータに関連した文書構文エラーについては以下を参照してください。
テキスト入力ファイルの情報を,中間表現に直接マップします。 ライン・ブレークとフォーム・フィードは,DDIF指示文にマップされます。 1行の空白行,または連続した複数の空白行は,段落の終端を示すものと解釈されます。
キャラクタ・セル端末または端末エミュレータで, DEC MCSファイルとしてテキスト入力ファイルを入力すると,次のように変換されます。
変換前の文字 | 変換後の文字 |
---|---|
Concurrency sign | 分音符 |
大文字のOとEの合字 | 乗算記号 |
分音符の付いた大文字のY | 鋭アクセントの付いた大文字のY |
小文字のoとeの合字 | 除算記号 |
分音符の付いた小文字のy | 鋭アクセントの付いたY |
中間表現に変換する時,テキスト入力ファイルの情報が消失することはありません。 これは,テキスト・ファイルには構造情報が入っていないからです。
印刷不可能な文字はすべて,空白文字に変換されます。 たとえばANSIエスケープ文字は,空白文字に変換され解釈を試みません。
テキスト・ファイルには,外部ファイル参照は含まれていません。
テキスト・ファイルには構文がないため, テキスト入力コンバータにより構文エラーが報告されることはありません。
テキスト出力コンバータは, 入力ファイルの中間表現からテキスト出力ファイルを作成します。 データのマッピング,およびテキスト出力コンバータに関連する変換の制限事項を, 次に示します。
入力ファイルの中間表現の中のすべてのLatin1テキストは, テキスト出力ファイルに変換されます。
入力ファイルをテキスト出力ファイルに変換する場合は, テキスト出力ファイルにはテキスト,およびライン・フィード,ページ・ブレーク, タブなどの最小限のフォーマッティングしか入れられないことに注意してください。 テキスト出力コンバータは,(出力ファイルがさらに変換される可能性を考慮して) フォーマッティング情報を保持します。 ページングは最も近いキャラクタ・セル(行,カラム)位置に変換されます。
テキスト出力ファイルに変換される時に, 入力ファイルの中間表現の中のすべてのグラフィック,イメージ, およびテキスト属性は消失します。
モノスペース・フォントが使用されているので, レイアウトを保持するために上書きが行われ,テキストが消失する可能性があります。 文書のフォーマット情報に指定したページ幅よりも,指定したページ幅が狭い場合は, 行が切り捨てられる可能性もあります。 OVERRIDE_FORMAT処理オプションを使用すれば,このようなことは起こりません。 それは,OVERRIDE_FORMAT処理オプションを指定すると, 文書のフォーマット情報は無視されるからです。
PostScript出力コンバータは, 入力ファイルの中間表現からPostScript出力ファイルを作成します。 データのマッピング,およびPostScript出力コンバータに関連する変換の制限事項を, 次に示します。
入力ファイルの中間表現中の情報を,PostScript出力ファイルに直接マップします。
PostScript出力ファイルに変換する時, 入力ファイルの中間表現の情報が消失することはありません。
CONVERT/DOCUMENTコマンドで/OPTIONS修飾子を指定する前に, オプション・ファイルを作成しておきます。オプション・ファイルは, オペレーティング・システム上でファイル・タイプが省略時のファイル・タイプ .CDA$OPTIONS であるテキスト・ファイルです。
オプション・ファイルには, 入力ファイル形式と出力ファイル形式に適用させるすべての処理オプションを指定します。 処理オプションを指定すると, 入力ファイルを形式の異なる出力ファイルに変換する時に, 最小限の変更に抑えることができます。
オプション・ファイルは必須ではありません。 ファイルを変換する時,省略時の処理オプションは自動的に適用されます。 ただし省略時以外の設定を使用する場合は,オプション・ファイルが必要です。
オプション・ファイルを作成する時は,以下のガイドラインに従ってください。
DDIFやDTIFのように,いくつかのファイル形式では, 入力コンバータと出力コンバータがあります。形式キーワードで _INPUTや_OUTPUTを指定すると,処理オプションを入力形式にのみ, または出力形式にのみ適用させるよう制限することができます。
オプション・ファイルのエントリ例を次に示します。
PS PAPER_HEIGHT 10
この例では形式キーワードの_OUTPUTは必須ではありません。 これは,PostScriptは出力形式でのみ使用可能だからです。 省略時の設定では,PAPER_HIGHTの値はインチ単位で指定します。
オプション・ファイルに, 特定の変換のためのコンバータに適用されないオプションを含めると, これらのオプションは無視されます。
入力形式または出力形式で無効なオプション, あるいはオプションで無効な値を指定すると,エラー・メッセージが返されます。 処理オプションに適用される制限事項を,次の節に示します。
分析出力コンバータは,次のオプションをサポートします。
省略時の値により生成された行の先頭に,コメント文字(!)を挿入します。 コメント文字は,対応する集合体括弧や配列括弧の前にも挿入されます。
継承した値により生成される行の先頭に,コメント文字(!)を挿入します。 コメント文字は,対応する集合体括弧や配列括弧の前にも挿入されます。
省略時の設定を変更します。BYTE STRING型のデータの場合, バイト文字列中のすべての文字が印刷可能な文字(16進値で20〜7E)であれば, 分析出力は16進数を変換した値を表示しません。 TRANSLATE_BYTE_STRINGSオプションを指定すると,この機能が変更されます。
省略時の設定を変更します。 DDIF$_IDU_PLANE_DATA (ビットマップのイメージ)のバイト文字列データの場合, 以前は分析出力は16進数を変換した値とASCIIを変換した値を表示しました。 これらはどちらも,多くのユーザにとって特定の値ではありませんでした。 新しいバージョンでは,どちらの表示も次のコメントと置き換えられます。
! *** Bit-mapped data not displayed here ***
16進数での表示を行う場合は,IMAGE_DATAオプションを指定します。 このオプションを指定すると,ASCIIに変換されません。
属性継承を有効にして,分析が表示されます。 継承属性は,出力中で"[Inherited value.]"というマークが付けられます。 このオプションを指定すると,外部参照はメインの文書にインポートされます。
テキスト出力コンバータは,次のオプションをサポートします。
テキスト出力コンバータが,テキストを7ビットのASCIIで出力することを指定します。 文字のフォールバック表現は,ASCII標準に記述されています。 このオプションを指定しないと,省略時の設定によりOFFが使用されます。 値を指定せずにこのオプションを指定すると,省略時の設定によりONが使用されます。
テキスト出力コンバータが, 入力ファイルの中間表現中でテキストではない要素を検出するたびに, メッセージを出力ファイルに書き込むことを指定します。 このオプションを指定しないと,省略時の設定によりOFFが使用されます。 値を指定せずにこのオプションを指定すると, 省略時の設定によりONが使用されます。
テキスト出力ファイルでの,1ページあたりの最大行数を指定します。 0を指定すると,1ページあたりの行数は,文書で指定した行数と同じになります。 OVERRIDE_FORMATとともに指定する, または文書にページ・サイズが指定されていないと, このオプションで指定した値を使用して,フォーマッティングします。 省略時の設定の値は66です。
HEIGHTおよび WIDTH処理オプションで指定したページのサイズにテキストをフォーマッティングできるように, 文書に含まれているフォーマッティグ情報を無視するかどうかを指定します。 このオプションを指定しないと,省略時の設定によりOFFが使用されます。 値を指定せずにこのオプションを指定すると,省略時の設定によりONが使用されます。
テキスト出力ファイルを作成する時に, 文書に含まれているソフト指示文に従うかどうかを指定します。 このオプションを指定しないと,省略時の設定によりOFFが使用されます。 値を指定せずにこのオプションを指定すると,省略時の設定によりONが使用されます。
テキスト出力ファイルでの,1ページあたりの最大カラム数を指定します。 0を指定すると,1ページあたりのカラム数は, 文書で指定したカラム数と同じになります。 OVERRIDE_FORMATとともに指定する, または文書にページ・サイズが指定されていないと, このオプションで指定した値を使用してフォーマッティングします。 ここで指定した値を越えるテキストは,切り捨てられます。省略時の値は80です。
PostScript出力コンバータは,次のオプションをサポートします。
PostScript出力ファイルをフォーマッティングする時に使用される, 用紙のサイズを指定します。サイズ引数で有効な値を次に示します。
キーワード | サイズ |
---|---|
A0 | 841 x 1189ミリ(33.13 x 46.85インチ) |
A1 | 594 x 841ミリ(23.40 x 33.13インチ) |
A2 | 420 x 594ミリ(16.55 x 23.40インチ) |
A3 | 297 x 420ミリ(11.70 x 16.55インチ) |
A4 | 210 x 297ミリ(8.27 x 11.70インチ) |
A | 8.5 x 11インチ |
B | 11 x 17インチ |
C | 17 x 22インチ |
D | 22 x 34インチ |
E | 34 x 44インチ |
LEDGER | 11 x 17インチ |
LEGAL | 8.5 x 14インチ |
LETTER | 8.5 x 11インチ |
LP | 13.7 x 11インチ |
VT | 8 x 5インチ |
省略時の設定の用紙サイズはA(8.5 x 11インチ)です。
あらかじめ定義されている値以外の,用紙のサイズを指定します。 省略時の設定の用紙の高さは11インチです。
あらかじめ定義されている値以外の,用紙のサイズを指定します。 省略時の設定の用紙の幅は8.5インチです。
用紙の上部のマージン幅を指定します。省略時の設定は0.25インチです。
用紙の下部のマージン幅を指定します。省略時の設定は0.25インチです。
用紙の左のマージン幅を指定します。省略時の設定は0.25インチです。
用紙の右のマージン幅を指定します。省略時の設定は0.25インチです。
出力されたPostScriptファイルで使用される用紙の方向を指定します。 方向引数で有効な値を次に示します。
キーワード | 説明 |
---|---|
PORTRAIT | 縦向き。用紙の長い方の辺が,垂直軸と並行になる向き。 |
LANDSCAPE | 横向き。用紙の長い方の辺が,水平軸と並行になる向き。 |
省略時の設定はPORTRAITです。
PostScript出力コンバータに,8ビットで出力するかどうかを指定します。 省略時の値はONです。
DDIF文書で指定されたレイアウトで処理するかどうかを指定します。 省略時の値はONです。
出力バッファのサイズを指定します。64から256までの値を指定しなければなりません。 省略時の値は132です。
下マージンを越えたテキストを,改ページするかどうかを指定します。 省略時の値はONです。
出力を編集するために,DDIFファイルのソフト指示文を処理するかどうかを指定します (ソフト指示文は改行,改ページ,タブなどの編集コマンドを指定します)。 PostScript出力コンバータがソフト指示文を処理すると,省略時の値はONです。
右マージンを越えるテキストのラッピングを行うかどうかを指定します。 省略時の値はONです。OFFを指定すると,テキストは右マージンを越えてしまいます。
入力コンバータのある, CDAをサポートする表ファイル形式に適用させる処理オプションを含む, オプション・ファイルを作成できます。 表ファイル形式の例としては,データ・テーブルやスプレッドシートがあります。
表入力ファイルを文書出力ファイルに変換するには,DTIF_TO_DDIF形式名を使用し, 次に処理オプションを指定します。 特定の表入力ファイル形式や文書出力ファイル形式への処理オプションに加えて, DTIF_TO_DDIF処理オプションを指定します。
レポートや他の文書に表のテキスト表現を入れられるように, 表入力ファイルを文書出力ファイルに変換したい場合もあります。 だたし表入力ファイルを文書出力ファイルに変換すると,セル・ボーダ,ヘッダ, グリッド行,すべての式,およびフォント・タイプが消失することに注意してください。
ドメイン・コンバータは,次のオプションをサポートします。
カラム属性のカラム・タイトルを,カラムの上中央に表示します。
現在の日付と時刻を,ページの左下の隅に表示します。 これらは,文書に省略時で設定されている形式にしたがって表示されます。
文書ヘッダにある文書の日付と時刻を,ページの左上の隅に表示します。 これらは,文書に省略時で設定されている形式にしたがって表示されます。
文書ヘッダの文書タイトルを,各ページの上中央に表示します。
現在のページ番号を,ページの右上の隅に表示します。
PostScript出力ファイルをフォーマッティングする時に使用する, 用紙のサイズを指定します。サイズ引数で有効な値を次に示します。
キーワード | サイズ |
---|---|
A0 | 841 x 1189ミリ(33.13 x 46.85インチ) |
A1 | 594 x 841ミリ(23.40 x 33.13インチ) |
A2 | 420 x 594ミリ(16.55 x 23.40インチ) |
A3 | 297 x 420ミリ(11.70 x 16.55インチ) |
A4 | 210 x 297ミリ(8.27 x 11.70インチ) |
A5 | 148 x 210ミリ(5.83 x 8.27インチ) |
A | 8.5 x 11インチ(216 x 279ミリ) |
B | 11 x 17インチ(279 x 432ミリ) |
B4 | 250 x 353ミリ(9.84 x 13.90インチ) |
B5 | 176 x 250ミリ(6.93 x 9.84インチ) |
C | 17 x 22インチ(432 x 559ミリ) |
C4 | 229 x 324ミリ(9.01 x 12.76インチ) |
C5 | 162 x 229ミリ(6.38 x 9.02インチ) |
D | 22 x 34インチ(559 x 864ミリ) |
DL | 110 x 220ミリ(4.33 x 8.66インチ) |
E | 34 x 44インチ(864 x 1118ミリ) |
10x13_ENVELOPE | 13 x 254ミリ(15600 x 10インチ) |
9x12_ENVELOPE | 12 x 229ミリ(14400 x 9インチ) |
BUSINESS_ENVELOPE | 9.5 x 105ミリ(11400 x 4.13インチ) |
EXECUTIVE | 10 x 191ミリ(12000 x 7.5インチ) |
LEDGER | 11 x 17インチ(279 x 432ミリ) |
LEGAL | 8.5 x 14インチ(216 x 356ミリ) |
LETTER | 8.5 x 11インチ(216 x 279ミリ) |
LP | 13.7 x 11インチ(348 x 279ミリ) |
VT | 8 x 5インチ(203 x 127ミリ) |
用紙サイズA(8.5 x 11インチ)が省略時の設定です。
あらかじめ定義されている値以外の,用紙のサイズを指定します。 省略時の設定の用紙の高さは11インチです。
あらかじめ定義されている値以外の,用紙のサイズを指定します。 省略時の設定の用紙の幅は8.5インチです。
用紙の上部のマージン幅を指定します。省略時の設定は0.25インチです。
用紙の下部のマージン幅を指定します。省略時の設定は0.25インチです。
用紙の左のマージン幅を指定します。省略時の設定は0.25インチです。
用紙の右のマージン幅を指定します。省略時の設定は0.25インチです。
出力されたPostScriptファイルで使用される用紙の方向を指定します。 方向引数で有効な値を次に示します。
キーワード | 説明 |
---|---|
PORTRAIT | 縦向き。用紙の長い方の辺が,垂直軸と並行になる向き。 |
LANDSCAPE | 横向き。用紙の長い方の辺が,水平軸と並行になる向き。 |
省略時の設定はPORTRAITです。
$ CONVERT/DOCUMENT/OPTIONS=MY_OPTIONS.CDA$OPTIONS - _$MY_INPUT.DTIF/FORMAT=DTIF MY_OUTPUT.DDIF/FORMAT=DDIFこのコマンドはMY_INPUT.DTIFという名前でDTIF形式の入力ファイルを, MY_OUTPUT.DDIFという名前でDDIF形式の出力ファイルに変換します。 オプション・ファイルMY_OPTIONS.CDA$OPTIONSも指定しています。
Convert/Reclaimユーティリティを起動します。 このユーティリティは,新しいレコードをProlog 3索引ファイルに書き込めるように, Prolog 3索引ファイルの空バケットを使用できるようにします。 /RECLAIM修飾子は必須です。
Convert/Reclaimユーティリティについての詳細は, 『OpenVMS Record Management Utilities Reference Manual』あるいはオンライン・ヘルプを参照してください。
CONVERT/RECLAIM ファイル指定
1つまたは複数の既存のファイルから新しいファイルを作成します。 COPYコマンドによって,次の操作を実行できます。
COPY 入力ファイル指定[,...] 出力ファイル指定
出力ファイル指定には, 少くとも1つのファイル指定フィールドを指定しなければなりません。 装置またはディレクトリを指定していない場合には, 現在の省略時の装置とディレクトリが使用されます。 他のフィールド(ファイル名,ファイル・タイプ,バージョン番号)を省略した場合には, COPYコマンドは入力ファイルの対応するフィールドの値を使用します。 複数の入力ファイルが指定されている場合には, 一般に,最初の入力ファイルの各フィールドを使用します。
ファイル名,ファイル・タイプ,またはバージョン番号の代わりに, アスタリスク・ワイルドカード文字(*)を使用することができます。 COPYコマンドでは,出力ファイルの名前を決定するために, その際に参照される入力ファイルの対応するフィールドが使用されます。
COPYコマンドは,省略時の設定では,1つの出力ファイルを作成します。 複数の入力ファイルを指定した場合には, 最初の入力ファイルが出力ファイルにコピーされ, 2番目以降の入力ファイルが出力ファイルの最後に追加されます。 出力ファイル指定フィールドを省略したり, フィールドにアスタリスク(*)ワイルドカード文字を使用すると, 最初または唯一の入力ファイルの対応するフィールドを使用して出力ファイルに名前が付けられます。
最大レコード長を持つ複数の入力ファイルを指定すると, 出力ファイルには最初の入力ファイルの最大レコード長が与えられます。 以降の入力ファイルに出力ファイルの最大レコード長より長いレコードがあると, COPYコマンドは矛盾したファイル属性を示すメッセージを発行して, 次のファイルのコピーを開始します。
複数の出力ファイルを作成するには, 以下の少なくとも1つを使用して複数の入力ファイルを指定します。
COPYコマンドで複数の出力ファイルを作成する場合には, 出力ファイル名には各入力ファイルから対応するフィールドが使用されます。 また,出力ファイル指定でアスタリスク(*)ワイルドカード文字を使用すると, 複数の出力ファイルを作成できます。次に例を示します。
$ COPY A.A;1, B.B;1 *.C
このCOPYコマンドは,現在の省略時ディレクトリに, A.C;1およびB.C;1というファイルを作成します。 複数の入力ファイルと出力ファイルを指定する場合には, /LOG修飾子を使用すると,ファイルが正しくコピーされたことを確認できます。
DECwindows複合ドキュメントにCOPYコマンドを使用する場合には, 特に注意してください。 詳細は『Guide to OpenVMS File Applications』を参照してください。
入力ファイルと出力ファイルのバージョン番号を指定しない場合,(省略時の設定により) 出力ファイルには次のいずれかのバージョン番号が付けられます。
アスタリスク(*)ワイルドカード文字で出力ファイルのバージョン番号を指定すると, 出力ファイルのバージョン番号として, 対応する入力ファイルのバージョン番号が使用されます。
出力ファイルのバージョン番号を明示的に指定すると, 出力ファイル指定にはその番号が使用されます。 指定したバージョン番号より大きいバージョンの出力ファイルが存在する場合は, 警告メッセージが表示されファイルがコピーされます。 同じバージョンの出力ファイルが存在する場合は,メッセージが表示され, 入力ファイルはコピーされません。
出力ファイル名のいずれかの部分を明示的に指定した場合, COPYコマンドでは出力ファイルを新しいファイルと見なします。 新しいファイルの作成日は,現在の時刻と日付にセットされます。
1つまたは複数のアスタリスク(*) とパーセント記号(%)ワイルドカード文字で出力ファイルを指定すると, 入力ファイルの作成日が使用されます。
COPYコマンドでは,常に出力ファイルの更新日が現在の時刻と日付に設定されます。 バックアップ日は,0に設定されます。 ファイル・システムによって,出力ファイルに新しい満了日が割り当てられます (保持が許可されていると満了日が設定され,許可されていないと0に設定されます)。
出力ファイルの保護とアクセス制御リスト(ACL)は, 次のパラメータによって次の順序で決定されます。
(BACKUPコマンドは,入力ファイルの作成日,更新日, ファイル保護を使用することに注意してください。)
出力ファイルの保護を変更するには,/PROTECTION修飾子を使用します。
通常,出力ファイルの所有者は,出力ファイルの作成者と同じです。 ただし,拡張特権を持つ利用者が出力ファイルを作成する場合,所有者は, 親ディレクトリまたは, 存在する場合は出力ファイルの前バージョンの所有者になります。
拡張特権は,次のいずれかです。
ディレクトリ・ファイルをコピーすると, 指定したディレクトリ名の新しい空のディレクトリが作成されます。 指定したディレクトリのファイルは,新しいディレクトリにコピーされません。 ディレクトリ・ファイルのコピーの例については,「例」を参照してください。
時刻の指定方法についての詳細は,『OpenVMSユーザーズ・マニュアル』, またはオンライン・ヘルプの DCL_Tips トピック (Date_Time サブトピック) を参照してください。
UICを指定する場合には, 『OpenVMS Guide to System Security』に説明されている標準的なUIC形式を使用します。
Files-11ディスク上構造レベル2のディスクからのファイルを連結する場合には, COPYコマンドは,アルファベット順にファイルを連結します。 ファイル・バージョン・フィールドにワイルドカード文字を指定した場合には, ファイルはバージョン番号の大きい順にコピーされます。 Files-11ディスク上構造レベル1ディスクからのファイルを連結する場合には, ランダムな順序で連結されます。
YES | NO | QUIT |
TRUE | FALSE | Ctrl/Z |
1 | 0 | ALL |
[Return] |
応答として単語を入力する場合には, 大文字と小文字を任意に組み合わせることができます。 単語の応答は,1文字または複数の文字 (たとえば,TRUEはT,TR,またはTRU)に短縮できます。 肯定応答は,YES,TRUE,および1です。 否定応答はNO,FALSE,0,および<RET>です。 QUITまたはCTRL/Zは,その時点でコマンドの処理を停止することを示します。 ALLと応答すると,コマンドはプロセスを継続しますが, そのあとプロンプトは表示されなくなります。 上記のリストに含まれていない応答をタイプすると, DCLがエラー・メッセージを出力し,同じプロンプトがもう一度表示されます。
ファイルをテープに,またはテープからコピーする場合には, /CONTIGUOUS修飾子は無効です。これは,テープ上のファイル・サイズは, ディスクにコピーされるまで判断することができないためです。 テープからファイルをコピーする時に, そのファイルを連続して領域にコピーしたい場合には,COPYコマンドを2度使用します。 つまり,ファイルをテープからコピーするためのCOPYコマンドと, 連続したファイルを作成するためのCOPYコマンドです。
/LOG修飾子を指定するとCOPYコマンドは, 各コピー操作を実行するたびに次の情報を表示します:
ファイル構造を持たない装置に出力ファイルが書き込まれる場合には, /OVERLAY修飾子は無視されます。
出力ファイルが存在する場合には,指定されていない保護属性は, そのファイルの現在の保護設定から適用されます。 出力ファイルが存在しない場合には,現在の省略時の保護設定が使用されます。
保護コードの指定についての詳細は,『OpenVMS Guide to System Security』 を参照してください。
時刻の指定方法についての詳細は,『OpenVMSユーザーズ・マニュアル』, またはオンライン・ヘルプの DCL_Tips トピック (Date_Time サブトピック) を参照してください。
この修飾子のキーワードはCONDENSEDおよびEXPANDEDです。 意味は次の表のとおりです。
キーワード | 説明 |
---|---|
CONDENSED (省略時の設定) |
ファイル名を255文字長の文字列に適合するように表示します。 このファイル名の場合,ファイル指定にDIDあるいはFID短縮形を含むことが可能です。 |
EXPANDED | ファイル名をディスクに格納されているとおりに表示します。 このファイル名の場合,ファイル指定にDIDあるいはFID短縮形は含みません。 |
キーワードCONDENSEDとEXPANDEDを同時に指定することはできません。 このコマンドは,確認が要求された場合に,出力メッセージに表示されるファイル名の書式を指定します。
EXPANDEDキーワードが指定されていない場合,ファイル・エラーはCONDENSEDファイル指定で表示されます。
詳細は『OpenVMS Extended File Specificationsの手引き』を参照してください。
省略時の設定では,出力ファイルのサイズは入力ファイルの実際のサイズで決定されます。 /NOTRUNCATEを指定すると,出力ファイルのサイズは入力ファイルの占有サイズで決定されます。
注意
- TK50テープ・ドライブのようなハードウェア装置では, これらのハードウェア機能の一部として,データの一貫性をチェックします。 これらの装置では,/WRITE_CHECKを使用する必要はありません。 どの装置が自動書き込みチェックを提供しているかについては, 使用しているハードウェアのドキュメントを参照してください。
$ COPY TEST.DAT NEWTEST.DATこのCOPYコマンドは, 省略時のディスクおよびディレクトリからTEST.DATというファイルの内容を, 同じディスクおよび同じディレクトリのNEWTEST.DATという名前のファイルにコピーします。 NEWTEST.DATという名前のファイルがすでに存在する場合には, 新しいバージョンを作成します。
$ COPY ALPHA.TXT TMP $ COPY ALPHA.TXT .TMP最初のCOPYコマンドは, ALPHA.TXTというファイルをTMP.TXTという名前のファイルにコピーします。 COPYコマンドは, 出力ファイルのファイル・タイプとして入力ファイルのものを使用します。 2番目のCOPYコマンドは,ALPHA.TMPという名前のファイルを作成します。 このCOPYコマンドでは, 入力ファイルの名前を出力ファイルのファイル名として使用します。
$ COPY/LOG TEST.DAT NEW.DAT;1/REPLACE %COPY-I-REPLACED, DBA0:[MAL]NEW.DAT;1 being replaced %COPY-S-COPIED, DBA0:[MAL]TEST.DAT;1 copied to DBA0:[MAL]NEW.DAT;1 (1 block)この例では/REPLACE修飾子を指定して, 出力ファイルの既存のバージョンと新しいファイルを置き換えるよう COPYコマンドに要求しています。COPYコマンドからの最初のメッセージは, 既存のファイルを置き換えたことを示しています。 出力ファイルのバージョン番号は,明示的に指定しなければなりません。 明示的に指定しないとCOPYコマンドは,ファイルNEW.DATの新しいバージョンを作成します。
$ COPY *.COM [MALCOLM.TESTFILES]この例のCOPYコマンドは,現在の省略時のディレクトリ内で,ファイル・タイプが .COMであるファイルの最新バージョンを, サブディレクトリ[MALCOLM.TESTFILES]にコピーします。
$ COPY/LOG *.TXT *.OLD %COPY-S-COPIED, DBA0:[MAL]A.TXT;2 copied to DBA0:[MAL]A.OLD;2 (1 block) %COPY-S-COPIED, DBA0:[MAL]B.TXT;2 copied to DBA0:[MAL]B.OLD;2 (1 block) %COPY-S-COPIED, DBA0:[MAL]G.TXT;2 copied to DBA0:[MAL]G.OLD;2 (4 blocks) %COPY-S-NEWFILES, 3 files createdこの例のCOPYコマンドは,ファイル・タイプが.TXTであるファイルの最新バージョンを, 新しいファイルにコピーします。新しいファイルのファイル名は, 既存のファイルのファイル名と同じです。ただしファイル・タイプは.OLDです。 COPYコマンドからの最後のメッセージは, 新たに3つのファイルが作成されたことを示しています。
$ COPY/LOG A.DAT,B.MEM C.* %COPY-S-COPIED, DBA0:[MAL]A.DAT;5 copied to DBA0:[MAL]C.DAT;11 (1 block) %COPY-S-COPIED, DBA0:[MAL]B.MEM;2 copied to DBA0:[MAL]C.MEM;24 (58 records) %COPY-S-NEWFILES, 2 files created2つの入力ファイル指定はコンマで区切られています。 出力ファイル指定のアスタリスク(*)ワイルドカード文字は, 2つの出力ファイルを作成することを指定しています。 各コピー操作においてCOPYコマンドは,入力ファイルのファイル・タイプを使用して, 出力ファイルのファイル・タイプを決めます。
$ COPY/LOG *.TXT TXT.SAV %COPY-S-COPIED, DBA0:[MAL]A.TXT;2 copied to DBA0:[MAL]TXT.SAV;1 (1 block) %COPY-S-APPENDED, DBA0:[MAL]B.TXT;2 appended to DBA0:[MAL]TXT.SAV;1 (3 records) %COPY-S-APPENDED, DBA0:[MAL]G.TXT;2 appended to DBA0:[MAL]TXT.SAV;1 (51 records) %COPY-S-NEWFILES, 1 file createdこの例のCOPYコマンドは, ファイル・タイプが.TXTであるすべてのファイルの最新バージョンを, TXT.SAVという1つのファイルにコピーします。 最初の入力ファイルがコピーされた後,COPYコマンドは, 他の入力ファイルはその出力ファイルに追加されることを示すメッセージを表示します。
この例で/NOCONCATENATE修飾子を使用すると, COPYコマンドは各入力ファイルに対して1つずつTXT.SAVを作成します。 各TXT.SAVファイルは,バージョン番号が異なります。
$ COPY MASTER.DOC DBA1:[BACKUP]この例のCOPYコマンドは, ファイルMASTER.DOCの最新バージョンを装置DBA1にコピーします。 ディレクトリ[BACKUP]にMASTER.DOCという名前のファイルがない場合は, COPYコマンドは入力ファイルのバージョン番号を出力ファイルに割り当てます。 このコマンドを実行するためには, 装置DBA1上の[BACKUP]ディレクトリへの書き込み(W)アクセス権が必要です。
$ COPY SAMPLE.EXE DALLAS::DISK2:[000,000]SAMPLE.EXE/CONTIGUOUSこの例のCOPYコマンドは,ローカル・ノードにあるファイルSAMPLE.EXEを, 遠隔ノードDALLAS上のSAMPLE.EXEにコピーします。 /CONCATENATE修飾子が指定されているので, 出力ファイルは物理的に連続したディスク領域に作成されます。 このコマンドを実行するためには, 遠隔ノードDALLASの装置DISK2への書き込み(W)アクセス権が必要です。
$ COPY *.* PRTLND::*.*このCOPYコマンドは, ローカル・ノードのユーザ・ディレクトリ内にあるすべてのファイルを, PRTLNDという遠隔ノードにコピーします。 新しいファイルには,入力ファイルと同じ名前が与えられます。 このコマンドが正しく機能するには, PRTLNDという遠隔ノードの省略時のディレクトリに対して, 書き込み(W)アクセス権が必要です。
$ COPY BOSTON::DISK2:TEST.DAT;5 _To: DALLAS"SAM SECReturn"::DISK0:[MODEL.TEST]TEST.DAT/ALLOCATION=50このCOPYコマンドは,ノードBOSTONのDISK2という装置のTEST.DAT;5というファイルを DALLASという遠隔ノードのTEST.DATという名前の新しいファイルにコピーします。 /ALLOCATION修飾子は,ノードDALLASのTEST.DATという新しいファイルに対して, 最初に50ブロックを割り当てます。遠隔ディレクトリをアクセスするために, "SAM SECReturn"というアクセス制御文字列を使用しています。
$ MOUNT TAPED1: VOL025 TAPE: $ COPY TAPE:*.* *この例でMOUNTコマンドは,ラベルがVOL025であるボリュームを, 磁気テープ装置TAPED1にマウントし,その装置に論理名TAPEを割り当てるよう指定しています。
COPYコマンドは,入力ファイル指定に論理名TAPEを使用して, 磁気テープ上のすべてのファイルを, 現在の省略時のディスクおよびディレクトリ上にコピーするよう要求しています。 コピーされたファイルはすべて,ファイル名とファイル・タイプを保持します。
$ ALLOCATE CR: _CR1: ALLOCATED $ COPY CR1: CARDS.DAT $ DEALLOCATE CR1:この例のALLOCATEコマンドは,排他的なカード・リーダの使用を要求しています。 ALLOCATEコマンドからの応答は,カード・リーダCR1の装置名を示しています。
カード・リーダを占有したら,カードのデックをリーダに入れ, 入力ファイルとしてカード・リーダを指定して COPYコマンドを入力できます。 COPYコマンドはカードをファイルCARDS.DATに読み込みます。 カード・デックの終端(EOF)は, EOFカード(12-11-0-1-6-7-8-9 overpunch)により示されていなければなりません。
DEALLOCATEコマンドは,カード・リーダを解放します。
$ COPY [MACKRILL]MONKEY.DIR [PAINTER] $ COPY [MACKRILL.MONKEY]*.* [PAINTER.MONKEY]*.*この例では,COPYコマンドを用いて, [PAINTER]MONKEY.DIRディレクトリ・ファイルとして登録される新しい空のディレクトリ [PAINTER.MONKEY]を作成します。 COPYコマンドで [PAINTER]MONKEY.DIRディレクトリ・ファイルを作成したら, [PAINTER.MONKEY]ディレクトリ上にファイルをコピーあるいは作成できます。
例中の2番目のCOPYコマンドは, [MACKRILL.MONKEY]ディレクトリから[PAINTER.MONKEY]ディレクトリにファイルをコピーします。
$ COPY [MACKRILL]CATS.DIR [MACKRILL]DOGS.DIRこの例では,COPYコマンドを用いて, 新しい空のファイル[MACKRILL]DOGS.DIRを作成します。 [MACKRILL]CATS.DIRファイルと同じ属性を持つディレクトリ・ファイルを作成するには, このCOPYコマンドを使用してください。 以下のコマンドを入力しても,同じ結果が得られます。
$ CREATE/DIRECTORY [MACKRILL.DOGS]
$ COPY [MACKRILL]TIGER.DIR [MACKRILL.ANIMALS] $ COPY [MACKRILL.TIGER]*.* [MACKRILL.ANIMALS.TIGER]*.* $ DELETE [MACKRILL.TIGER]*.*;* $ SET PROTECTION=W=D TIGER.DIR $ DELETE TIGER.DIR;この例ではまず,COPYコマンドを用いて新しい空のディレクトリ・ファイル [MACKRILL.ANIMALS]TIGER.DIRを作成します。 続くコマンドでは,[MACKRILL.TIGER]ディレクトリから [MACKRILL.ANIMALS.TIGER]ディレクトリへファイルをコピーし, さらに元のTIGER.DIRディレクトリを削除します。 TIGER.DIRはディレクトリ・ファイルなので, これを削除する前に,保護コードを削除(D)にしておかなければなりません。
FTPユーティリティを起動して, TCP/IP接続経由で異なるファイル・システムを持つホスト間でファイルを転送します。
COPY/FTP コピー元ファイル コピー先ファイル
OpenVMS間の転送
両方のマシンがOpenVMS構造化転送をサポートしている場合, /BINARY,/ASCII,および/FDL修飾子は無視されます。 協調動作するOpenVMS FTPのクライアントとサーバは, 正しいOpenVMS属性を使用して自動的にファイルを転送します。
COPY/FTPでは, 一般に遠隔ファイル指定でアスタリスク・ワイルドカード文字(*)がサポートされています。
$ COPY/FTP/FDL/ANON rms_indexed_file.idx - _$ remotehst5::"/public/rms.idx.file"この例では,TCP/IP接続を介して, OpenVMS RMSファイルrms_indexed_file.idxからremotehst5上の遠隔ファイルpublic/rms.idx.fileへ転送を行います。 遠隔ノードへのアクセスは匿名で行われ,FLDファイルが作成され, rms_indexed_file.inxとともにコピーされます。
$ COPY/FTP/VERBOSE sys$login:login.com - xdelta.zko.dec.com"username password"::sys$login:login.tmpこの例では,TCP/IP接続を介して, OpenVMS RMSファイルsys$login:login.comから遠隔ファイルsys$login:login.tmpへ, 遠隔システムのユーザ名とパスワードを指定して転送を行います。
$ COPY/FTP/LOG boston"SMITH REDROSES"::DKA0$:[SMITH]RESULTS.LOG _To: grad.uq.edu.au"JONES BYRONBAY"::DKA200$:[JONES.DATA]この例では,COPY/FTPコマンドで, BOSTONノード上のユーザ・アカウントSMITHおよびパスワードREDROSESを指定してDKA0$:[SMITH]RESULTS.LOGファイルを, UQ.EDU.AUインターネット・ドメイン内のGRADノード上のユーザ・アカウントJONESおよびパスワードBYRONBAYを指定して DKA200$:[JONES.DATA]RESULTS.LOGへ転送を行います。
RCPユーティリティを起動して,TCP/IP接続経由で,ホスト間でファイルをコピーします。
COPY/RCP コピー元ファイル コピー先ファイル
TCP/IP用のOpenVMS DCLコマンドは, DECnetネットワーク接続用のDCLコマンドと同じ遠隔ファイル指定書式をサポートしています。 一部のファイル・トランザクション・アプリケーションのインプリメントでは, コピー元ファイルとコピー先ファイルがともに遠隔のファイル指定であるファイル転送がサポートされています。
完全な遠隔ファイル指定形式は,次のとおりです。
node"username password account"::filename.ext
ファイルがOpenVMS以外のシステムに存在する場合,ファイル名を二重引用符で囲みます。 たとえば, U32というDIGITAL UNIXノード上の/usr/users/user/Ordersというファイルにアクセスするには, 次のように指定します。
U32"user password"::"/usr/users/user/Orders"
UNIXシステムは, 大文字と小文字を区別するファイル指定をサポートしていることに注意してください。
$ COPY/RCP local_file.c remotehst4"Smith smpw"::rem_file.cこの例では,TCP/IP接続を介して, local_file.cを遠隔ホスト上の rem_file.c へコピーします。
順編成ディスク・ファイル,または順編成ファイルを作成します。
CREATE ファイル指定[,...]
コマンド・プロシージャ・ファイルからCREATEコマンドを入力する場合, システムは,レコードの最初の位置がドル記号($)になるまで, コマンド・プロシージャ・ファイル以降のすべてのレコードを新しいファイルに読み込みます。 ファイル入力は,レコードの最初の位置がドル記号になるか, コマンド・プロシージャの終了とともに終了します。
CREATEコマンドで既存のファイル指定を使用すると, 新しく作成されるファイルのバージョン番号は, 同じ指定を持つ既存ファイルより大きいバージョン番号になります。
CREATEコマンドを使用して論理名サーチ・リストにファイルを作成すると, ファイルは論理名変換で生成された最初のディレクトリだけに作成されます。
通常,出力ファイルの所有者は,出力ファイルの作成者と同じです。ただし, 拡張特権を持つ利用者が出力ファイルを作成すると,所有者は親ディレクトリの, または出力ファイルの前バージョンの所有者になります。
拡張特権には,次の特権が含まれます。
作成するファイルの所有者の利用者識別コード(UIC)を指定します。 UICは,『OpenVMSユーザーズ・マニュアル』に説明されている, 標準的なUIC形式を使用して指定します。
各アクセス・カテゴリの値を指定しない場合や,/PROTECTION修飾子を省略すると, CREATEコマンドは,指定されていない各カテゴリごとに以下の保護を適用します。
ファイルが既に存在している | 適用される保護 |
---|---|
Yes | 既存ファイルの保護 |
No | 現在の省略時の保護 |
注意
- アクセスを指定しないでファイルを作成しようとすると, そのファイルにはシステムの省略時のRMS保護値が適用されます。 アクセスを指定しないファイルを作成するには, SET SECURITY/PROTECTIONコマンドを使用してください。
保護コードの指定についての詳細は,『OpenVMS Guide to System Security』 を参照してください。
$ CREATE MEET.TXT John, Residents in the apartment complex will hold their annual meeting this evening. We hope to see you there, Regards, Elwood [Ctrl/Z]省略時のディレクトリにテキスト・ファイルMEET.TXTを作成します。 このテキスト・ファイルには,Ctrl/Zが入力されるまでの行が入っています。
$ CREATE A.DAT, B.DAT Input line one for A.DAT... Input line two for A.DAT... . . . [Ctrl/Z] Input line one for B.DAT... Input line two for B.DAT... . . . [Ctrl/Z] $ターミナルからCREATEコマンドを入力した後では, システムはCTRL/Zによって最初の入力を終了するまで, A.DATという順編成ファイルに入力行を読み込みます。 次の入力データは,B.DATという2番目のファイルに入力されます。 この場合も,CTRL/Zにより入力は終了します。
$ FILE = F$SEARCH("MEET.TXT") $ IF FILE .EQS. "" $ THEN CREATE MEET.TXT John, Residents in the apartment complex will hold their annual meeting this evening. We hope to see you there, Regards, Elwood $ ELSE TYPE MEET.TXT $ ENDIF $ EXITこの例では, 省略時のディスクとディレクトリにファイルMEET.TXTがあるかどうか検索します。 ファイルが存在しなければ, CREATEコマンドを使って MEET.TXT というファイルを作成します。
1つまたは複数の,新しいディレクトリまたはサブディレクトリを作成します。 /DIRECTORY修飾子は省略できません。
第1レベル・ディレクトリを作成する場合は, マスタ・ファイル・ディレクトリ(MFD)への書き込み(W)アクセス権が必要です。 システム・ボリュームでは,一般にSYSTEMユーザか,SYSPRV特権または BYPASS特権を持つユーザのみがMFDへの書込みアクセス権を持っています。
サブディレクトリを作成しようとするディレクトリへの書込み(W)アクセス権が必要です。
CREATE/DIRECTORY ディレクトリ指定[,...]
1つのCREATE/DIRECTORYコマンドで, 一連のネスティングしたサブディレクトリを作成できます。 たとえば,コマンドの入力時には[a.b]も[a]も存在しない場合でも, [a.b.c]というサブディレクトリを作成することが可能です。 各サブディレクトリは,最上位レベルから順に下位レベルへ作成されます。
この修飾子は,MAIL.DIR;1などの大きなディレクトリを作成するのに便利です。 後に必要となる,ディレクトリの動的拡張をしなくて済むため性能が向上します。
作成されているディレクトリを所有する利用者識別コード(UIC)を指定します。 省略時の設定は,作成者のUICです。UICの指定位置にキーワードPARENTを指定すると, 一段上の親ディレクトリのUICがコピーされます。 特権を持ったユーザがサブディレクトリを作成する場合,省略時の設定では, 親ディレクトリ(トップ・レベルディレクトリの場合はMFD) の所有者がそのディレクトリの所有者となります。 ディレクトリの作成時に/OWNER_UIC修飾子を指定しない場合には, このコマンドは,次に示すように所有者を割り当てます。
省略時の保護は,親ディレクトリ(一段上のディレクトリ, またはトップ・レベル・ディレクトリのマスタ・ディレクトリ) の保護から削除(D)アクセスを除いたものです。
第1レベル・ディレクトリを作成している場合には, その1つ上のレベルのディレクトリは,MFDです(MFDの保護は, INITIALIZEコマンドによって設定されます)。
保護コードの指定についての詳細は,『OpenVMS Guide to System Security』 を参照してください。
バージョン・リミットの設定を変更すると,新しいリミットは, 設定が変更されたあとで作成されたファイルに対してだけ適用されます。 変更する前に作成されたファイルの新しいバージョンに対しては, 前のバージョン・リミットが適用されます。
$ CREATE/DIRECTORY/VERSION_LIMIT=2 $DISK1:[ACCOUNTS.MEMOS]この CREATE/DIRECTORYコマンドは, MEMOSというサブディレクトリを$DISK1という装置上のACCOUNTSディレクトリに作成します。 このディレクトリには,2つを越えるバージョンのファイルは保持できません。
$CREATE/DIRECTORY/PROTECTION=(SYSTEM:RWED,OWNER:RWED,GROUP,WORLD) - _$[KONSTANZ.SUB.HLP]このCREATE/DIRECTORYコマンドは, VAX上で[KONSTANZ.SUB.HLP]という名前のサブディレクトリを作成します。 このディレクトリの保護は,システムと所有者には,読み込み(R),書き込み(W), 実行(E),削除(D)を許しますが,グループおよびびワールドには, すべてのアクセスを禁じています。
$ CREATE/DIRECTORY DISK2:[GOLDSTEIN]このCREATE/DIRECTORYコマンドは, [GOLDSTEIN]というディレクトリをDISK2という装置上に作成します。 第1レベル・ディレクトリを作成するためには,特別の特権が必要です。
$ CREATE/DIRECTORY [HOFFMAN.SUB] $ SET DEFAULT [HOFFMAN.SUB]このCREATE/DIRECTORYコマンドは, [HOFFMAN.SUB]という名前のサブディレクトリを作成します。 このディレクトリ・ファイルは,[HOFFMAN]という名前のディレクトリに登録されます。 SET DEFAULT [HOFFMAN.SUB]コマンドは, 現在の省略時のディレクトリをこのサブディレクトリに変更します。 したがって,このあと作成されるファイルはすべて,[HOFFMAN.SUB]に登録されます。
$ CREATE/DIRECTORY [BOAEN.SUB1.SUB2.SUB3]この例では,トップ・レベル・ディレクトリ[BOAEN]と, 3つのサブディレクトリ([BOAEN.SUB1], [BOAEN.SUB1.SUB2]と[BOAEN.SUB1.SUB2.SUB3])を作成しています。
FDLファイルの指定を使用して新しい空のデータ・ファイルを作成するために, Create/FDLユーティリティ(CREATE/FDL)を起動します。/FDL修飾子は省略できません。
Create/FDLユーティリティについての詳細は, 『OpenVMS Record Management Utilities Reference Manual』 あるいはオンライン・ヘルプを参照してください。
CREATE/FDL= FDLファイル指定[ファイル指定]
新しい論理名テーブルを作成します。/NAME_TABLE修飾子は省略できません。
CREATE/NAME_TABLE テーブル名
すべての新テーブルは親テーブルを持ち, 親テーブルによって新テーブルがプロセス固有のものか共有可能なものかが決まります。 プロセス固有のテーブルを作成するには, /PARENT_TABLE修飾子を使用してプロセス固有テーブル (プロセス・ディレクトリ・テーブル)の名前を指定します。 共有可能なテーブルを作成するには,親テーブルを共有可能テーブルとして指定します。
親テーブルを明示的に指定しない場合には,CREATE/NAME_TABLEコマンドは, 親テーブルがLNM$PROCESS_DIRECTORYであるプロセス固有テーブルを作成します。 つまり,テーブル名はプロセス・ディレクトリに入れられます。
すべてのテーブルにはサイズ・クォータがあります。 このクォータは,テーブルの潜在的な成長を押さえるか, またはテーブルのサイズが仮想的には無制限であることを示すことがあります。 /QUOTA修飾子についての記述で,クォータの指定方法が説明されています。
作成するテーブルのアクセス・モードの指定には,/USER_MODE, /SUPERVISOR_MODE,または/EXECUTIVE_MODE修飾子を使用します。 これらの修飾子を1つ以上指定した場合には,最後に指定した修飾子だけが有効です。 アクセス・モードを指定しない場合には, スーパバイザ・モードのテーブルが作成されます。
論理名テーブルの削除には,DEASSIGNコマンドを使用します。 この時,削除するテーブルの名前を指定し, /TABLE修飾子にテーブルの名前が入れられたディレクトリ・テーブルを指定します。
論理名テーブルについての詳細は,『OpenVMSシステム管理者マニュアル』 を参照してください。
属性に対しては,次のキーワードを指定できます。
CONFINE | テーブルが, SPAWNコマンドによって生成されたサブプロセスにコピーされないことを指定します。 このキーワードは, プロセスに固有な論理名テーブルを作成している場合にだけ使用できます。 CONFINE属性を持つテーブルが作成されると,そのテーブルに登録される名前はすべて, CONFINE属性をもちます。 |
NO_ALIAS | より特権の低いアクセス・モードでは, 現在のディレクトリに同じ名前(論理名または論理名テーブルの名前) を登録できないことを指定します。NO_ALIASを指定しない場合には, そのテーブルには,より特権の低いアクセス・モードをもつ同じ名前を,「別名」 としてつけることができます。 NO_ALIAS属性を持つテーブルの作成時に,同じモード,またはより特権の低いモードで, 同じ名前がその論理名ディレクトリ・テーブルにすでに存在する場合には, この名前は削除されます。 |
SUPERSEDE | 既存のテーブルと同じ名前,同じアクセス・モード,
および同じディレクトリ・テーブルの新しいテーブルを指定する場合には,
既存のテーブルを削除し,新しいテーブルを作成することを指定します。
同じ名前のテーブルがすでに存在するかどうかとは無関係に,
新しいテーブルは必ず作成されます(SUPERSEDE属性を指定しない場合には,
既存のテーブルが存在すれば,新しいテーブルは作成されません)。
/LOG修飾子を指定した場合や,/LOG修飾子に対する省略時の設定を使用した場合には, 結果を示すメッセージが表示されます。 |
エグゼクティブ・モードの論理名テーブルを作成します。 エグゼクティブ・モードの論理名テーブル作成時にSYSNAM特権を持たない場合には, スーパバイザ・モードの論理名テーブルが作成されます。
親テーブルの名前を指定します。親テーブルは, 作成するテーブルが固有のものなのか共有可能なものなのかを決定します。 親テーブルを指定しない場合には, 省略時のテーブルとしてLNM$PROCESS_DIRECTORYが使用されます。 共用可能テーブルの親テーブルは,LNM$SYSTEM_DIRECTORYです。 親テーブルは, 作成するテーブルと同じかそれよりも高いアクセス・モードでなければなりません。
保護コードの指定についての詳細は, 『OpenVMS Guide to System Security』を参照してください。
/PROTECTION修飾子は,共有可能論理名テーブルに対してだけ適用されます。 プロセス固有の論理名テーブルには,適用されません。
注意
- コマンド・プロシージャを起動し終了すると, ユーザ・モード論理名は自動的に削除されます。
$ CREATE/NAME_TABLE TEST_TAB $ SHOW LOGICAL TEST_TAB %SHOW-S-NOTRAN, no translation for logical name TEST_TAB $ SHOW LOGICAL/TABLE=LNM$PROCESS_DIRECTORY TEST_TABこのCREATE/NAME_TABLEコマンドは,TEST_TABという新しいテーブルを作成します。 何も指定されていないので,テーブル名は省略時の設定によって, プロセス・ディレクトリに登録されます。 最初のSHOW LOGICALコマンドは省略時の設定によって, プロセス・ディレクトリ・テーブルを検索しないため, TEST_TABという名前を見つけることができません。 したがって,プロセス・ディレクトリを検索するために/TABLE修飾子を使用します。
$ CREATE/NAME_TABLE/ATTRIBUTES=CONFINE EXTRA $ DEFINE/TABLE=EXTRA MYDISK DISK4: $ DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV - _$ EXTRA, LNM$PROCESS, LNM$JOB, LNM$GROUP, LNM$SYSTEM $ TYPE MYDISK:[COHEN]EXAMPLE1.LISこの例は,EXTRAという新しい論理名テーブルをCONFINE属性で作成しています。 EXTRAテーブルとその中の論理名は,サブプロセスに引き継がれません。
次に,論理名MYDISKがテーブルEXTRAに登録されています。 MYDISKをファイル指定に使用するには, テーブルEXTRAがRMSによるファイル解析時に検索されなければなりません。 このため,EXTRAを等価名の1つとして持つプロセス固有の論理名 LNM$FILE_DEV を定義しています(システムは,装置とファイル指定の論理名展開に LNM$FILE_DEV を検索すべきテーブルへのポインタとして使用し,プロセス固有の LNM$FILE_DEV が定義されていれば,システムのそれに優先して使用します)。 LNM$FILE_DEV の定義後は,EXTRA,プロセス・テーブル,ジョブ・テーブル, グループ・テーブル,システム・テーブルの順に検索され, MYDISKをDISK4に展開される等価名としてファイル指定に使用できます。
他のターミナル・タイプをエミュレートするウィンドウを作成します。
注意
- 現在は,DECtermウィンドウのみがサポートされています。
CREATE/TERMINAL [コマンド文字列]
/PROCESS修飾子を指定しない場合,サブプロセスの名前は, 親プロセスと同じ名前に一意の数字を加えたものになります。 たとえば,親プロセスの名前がSMITHである場合には, サブプロセスの名前はSMITH_1やSMITH_2等になります。
サブプロセスでは親プロセスのLOGIN.COMは実行されません。これは, サブプロセスの初期化を速く行うために,コンテキストが別々にコピーされるためです。 /WAIT修飾子が指定されると, サブプロセスが終了しATTACHコマンドを使用することで親プロセスに制御が戻るまで, 親プロセスはハイバネート状態になります。
サブプロセスを終了し親プロセスに戻るには,LOGOUTコマンドを使用します。 ATTACHコマンドを使用して, 親プロセスを含むサブプロセス階層構造内の他のプロセスに制御を移すことができます (SHOW PROCESS /SUBPROCESSコマンドを使用すると, サブプロセス階層構造内のプロセスが表示され,現在のプロセスが示されます)。
注意
- サブプロセス階層構造はCREATE/TERMINALコマンドを使用して確立されるので, 階層構造内のプロセスを終了する場合には注意しなければなりません。 プロセスの終了時には, 階層構造のその時点より下に位置するすべてのサブプロセスが自動的に終了します。 たとえば,SPAWN/NOWAIT CREATE/TERMINALコマンドは, DECtermウィンドウが作成されるとすぐに終了するサブプロセスを生成します。 このプロセスが終了すると,DECtermウィンドウは消去されます。 したがって, 代わりにSPAWN/NOWAIT CREATE/TERMINAL/WAITコマンドを使用すればプロセスを継続できます。
CREATE/TERMINALコマンドの修飾子は, コマンドの動詞のすぐ後に指定しなければなりません。 コマンド文字列パラメータは最後の修飾子の後に指定し, コマンド行の最後まで続けます。
注意
- $PARSEが返すファイル名の"name"フィールドを基に, メイル・ボックスの論理名を決定します。 たとえば,"name"フィールドが DECW$TERMINALの場合,メイル・ボックス論理名は, DECW$TERMINAL_MAILBOX_node::0.0 になります。 また,旧バージョンとの互換性のために, DECW$DECTERM_MAILBOX_host::0.0 も同じメイル・ボックスを指すように定義されます。
プロセス名を指定せずに/PROCESS修飾子を指定すると, 親プロセス名に一意の数字を付けた名前が付けられます。 省略時のプロセス名は,ユーザ名_nの形式です。 既存のプロセス名を指定した場合には,エラーになります。 この修飾子は,/DETACHあるいは/NODETACH修飾子とともに指定します。
パラメータ | 説明 |
---|---|
BACKGROUND | 背景色 |
FOREGROUND | 前景色 |
WIDTH | このパラメータは使われません。COLUMNSを使用してください。 |
HEIGHT | このパラメータは使われません。ROWSを使用してください。 |
X_POSITION | X位置(ピクセル単位) |
Y_POSITION | Y位置(ピクセル単位) |
ROWS | ウィンドウの,文字セル単位での行数。 |
COLUMNS | ウィンドウの,文字セル単位での桁数。 |
INITIAL_STATE | ウィンドウの初期状態。ICONまたはWINDOW。 |
TITLE | ウィンドウのタイトル文字列 |
ICON_NAME | ウィンドウのアイコン名 |
FONT | 使用するフォント名。/LITTLE_FONT修飾子を指定するか /LITTLE_FONTも/BIG_FONT修飾子も指定しない場合は, 資源ファイルに設定されているリトル・フォント名に優先します。 その他の場合は,ビッグ・フォント名に優先します。フォント名は,論理名でも, 完全なフォント・セット内のベース・フォントでも構いません。 |
$ CREATE/TERMINAL=DECTERM/DETACH - _$ /DISPLAY=MYNODE::0 - _$ /WINDOW_ATTRIBUTES=( - _$ ROWS=36, - _$ COLUMNS=80, - _$ TITLE="REMOTE TERMINAL", - _$ ICON_NAME="REMOTE TERMINAL" )この例では, ノードMYNODE::上にDECtermウィンドウ内に独立プロセスを作成しています。 ウィンドウは36行80桁で, そのタイトルとアイコン名は"Remote terminal"に設定されています。
$ CREATE/TERMINAL=DECTERM - $_ /NOPROCESS - $_ /DEFINE_LOGICAL=(TABLE=LNM$GROUP,DBG$INPUT,DBG$OUTPUT)この例では,プロセス名を指定せずにDECtermを作成しています。 独立プロセスのデバッグのため論理名DBG$INPUT, DBG$OUTPUTをグループ論理名テーブルに定義しています(これにはGROUP特権が必要です)。