[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

1 DCLディクショナリ-記号-


= (割り当て文)

文字列または整数値に対するシンボル名を定義します。

フォーマット

    シンボル名=[=]式

    シンボル名[ビット位置,サイズ] =[=]置換式 

注意
DCLコマンド名としてすでに使用されているシンボル名を割り当てないでください。 IF,THEN,ELSE,およびGOTのようなシンボル割り当ては, コマンド・プロシージャの実行を妨げる可能性がありますので,行わないでください。

パラメータ

シンボル名

シンボル名に対して,文字から255文字までの文字列を定義します。 シンボル名には,DEC補助文字(DEC MCS)文字セットの英数字,アンダースコア(_), またはドル記号($)を含めることができます。 ただし,シンボル名は英字(大文字と小文字は同じとみなします),アンダースコア, またはドル記号から始めなければなりません。割り当て文に等号を1つ(=)指定すると, シンボル名を現在のコマンド・レベルのローカル・シンボル・テーブルに登録します。 割り当て文に等号2つ(==)を指定すると, シンボル名をグローバル・シンボル・テーブルに登録します。

割り当て文の右辺に値を指定します。このパラメータは文字列,整数値,シンボル名, レキシカル関数,またはこれらの要素の組み合わせで構成できます。 式に含まれる各構成要素を評価し,結果をシンボルに割り当てます。 リテラル文字列は,すべて二重引用符(" ")で囲まなければなりません。 シンボルを含む式を指定した場合には,シンボルの値を使用して式を評価します。

式を評価した結果は,文字列値または符合付きの整数値になります。式を評価した 結果が文字列になる場合には,そのシンボルに文字列値を割り当てます。式を評価し た結果が整数値の場合には,シンボルに整数値を割り当てます。整数値が4バイトのバ ッファに収まり切れない場合でも,エラー・メッセージは出力されません。

式中の演算子の概略と,式の指定方法についての詳細, および式の評価方法についての詳細は,『OpenVMSユーザーズ・マニュアル』 を参照してください。

DCLは,1024バイトのバッファを使用して割り当て文を記憶し式を評価します。 シンボル名,式,および式の計算の長さは1024バイトを超えることはできません。

[ビット位置,サイズ]

シンボル名の現在の32ビットの値に, 2進数値としての式の値を挿入することを指定します。 この種の割り当て文は,シンボル名の現在の値を評価した後で, 指定したビット数を置換式の結果と置き換えます。ビット位置は, ビット0を基準として相対位置であり,置き換えを実行する先頭の位置を指定します。 置き換えるシンボルが整数の場合には,ビット位置は32より小さい値でなければなりません。 またビット位置とサイズの合計も32以下でなければなりません。

置き換えるシンボルが文字列の場合には, ビット位置は6152より小さい値でなければなりません。 各文字は8ビットを使って表現するため,768文字目までならどの文字列からでも, 置き換えを開始できます(768文字目は,6144というビット位置から始まります)。 ビット位置とサイズの合計は,6152以下でなければなりません。

サイズとは,置き換えるビット数です。 32より大きいサイズを指定すると,DCLはサイズを32に切り捨てます。

かぎ括弧は,必ず指定しなければなりません。シンボル名とかぎ括弧の間に, 空白を入れることはできません。ビット位置とサイズの値は,整数式として指定します。

置換式

変更するシンボルを置き換えるために使用する,値を指定します。 置換式は,整数式として使用します。

変更するシンボルが整数の場合には,置換式は, シンボルに割り当てられた値と置き換えられるビット・パターンを定義します。 変更するシンボルが文字列の場合には,置換式の結果は, 文字列の指定されたビットを置き換えるビット・パターンを定義します。 変更しているシンボルが未定義の場合には,置換式の結果は空文字列を置き換えます。

説明

割り当て文を使用してシンボルを定義すると,コマンド言語を拡張することができます。 会話型コマンド・レベルでは,シンボルを使用してコマンド, またはコマンド行の同義語を定義できます。コマンド・プロシージャ・ファイルでは, シンボルを使用して条件式に変数を代入することができます。

定義できるシンボルの最大数は,以下により決まります。

  1. $ LIST == "DIRECTORY"
    
    この割り当て文は, DCLコマンドDIRECTORYに対するグローバル・シンボル定義として, ユーザ定義同義語LISTを定義します。

  2. $ COUNT = 0
    $ LOOP:
    $      COUNT = COUNT + 1
    $      IF P'COUNT' .EQS. "" THEN EXIT
    $      APPEND/NEW &P'COUNT' SAVE.ALL
    $      DELETE &P'COUNT';*
    $      IF COUNT .LT. 8 THEN GOTO LOOP
    $ EXIT
    
    このコマンド・プロシージャCOPYDEL.COMは, パラメータとして指定したファイルをSAVE.ALLというファイルに追加しています。 追加後に,追加したファイルを削除します。 8個までファイル名が使用でき,各々シンボルP1,P2,...に割り当てられます。

    このコマンド・プロシージャはカウンタを使用して参照され,ループ内では, 空文字列かどうかをIF文で検査してから処理を行っています。 このIF文では,シンボルCOUNTの値が文字Pに結合され, ループの1回目ではP1を,2回名ではP2を,というように各々検査されます。 P`COUNT'の評価後に,P1やP2等に相当するファイル名の置換が IFコマンドのコンテキストの中で自動的に行われます。

    APPENDやDELETEコマンドは,入力パラメータとしてファイル指定を必要とするので, 自動的な置換を行いません。 &P`COUNT'のアンパサンド(&)は,これらのコマンドでシンボル置換を強制的に行います。 これらのコマンドがループ内で最初に検索された時には, COUNTはその現在の値に置換されます。 コマンドの実行時には,アンパサンドで別の置換を行います。 つまり,最初のファイル指定がP1で置換され, 2番目のファイル指定はP2で置換されます。

    このコマンド・プロシージャを起動するには,次のコマンドを使用します。

         $ @COPYDEL ALAMO.TXT BEST.DOC
    

    ファイルALAMO.TXTとBEST.DOCは,それぞれSAVE.ALLに追加された後に削除されます。

  3. $ A = 25
    $ CODE = 4 + F$INTEGER("6") - A
    $ SHOW SYMBOL CODE
      CODE = -15   HEX = FFFFFFF1   Octal = 1777761
    
    この例は,2つの割り当て文を含んでいます。 最初の割り当て文は,25という値をシンボルAに割り当てます。 2番目の割り当て文は,整数(4),レキシカル関数(F$INTEGER(6)), およびシンボルAを含む式を評価します。 式の結果である-15が,シンボルCODEに割り当てられます。

  4. $ FILENAME = "JOBSEARCH" - "JOB"
    $ FILETYPE = ".OBJ"
    $ FILESPEC = FILENAME + FILETYPE
    $ TYPE 'FILESPEC'
    
    最初のコマンドでは,シンボルFILENAMEに"SEARCH"を割り当てます。 文字列"SEARCH"は,式で実行された文字列削除演算の結果です。 2番目のコマンドでシンボルFILETYPEに".OBJ"を割り当て, 3番目のコマンドでシンボルFILENAMEとFILETYPEを足して,FILESPECを作成しています。

    シンボルFILENAMEとFILETYPEの値が連結されているので, FILESPECには文字列"SEARCH.OBJ"が割り当てられます。 そしてシンボルFILESPECは,TYPEコマンドのパラメータとして使用されます。 一重引用符(` ')で,シンボルFILESPECをその値である SEARCH.OBJに展開するように指定しています。 そのため,TYPEコマンドでファイルSEARCH.OBJをタイプします。

  5. $ BELL[0,32] = %X07
    $ SHOW SYMBOL BELL
      BELL = ""
    
    この例では,シンボルBELLを算術置換文で作成しています。 シンボルBELLは未定義であったため,空文字列に16進数の7が挿入されます。 この値はASCIIコードでは,ターミナルのベルを鳴らすコードです。 SHOW SYMBOL BELLコマンドを実行すると,ターミナルのベルが鳴ります。

    シンボルBELLに整数値が定義済みであった場合には,BELLを表示すると, その新しい値が表示されます。

  6. $ $=34
    %DCL-W-NOCOMD, no command on line - reenter with alphabetic first
    character
    $ $$=34
    $ SHOW SYMBOL $$
    %DCL-W-UNDSYM, undefined symbol - check validity and spelling
    $ SHOW SYMBOL $
    $ = 34   Hex = 00000022  Octal = 00000000042
    
    ドル記号($)で始まるシンボルを使う場合,DCLが最初のドル記号を捨ててしまうので, ドル記号を2つ続けて($$)使用してください。


:= (文字列割り当て文)

文字列値に対してシンボル名を定義します。

フォーマット

    シンボル名:=[=]文字列

    シンボル名[オフセット,サイズ] :=[=]置換文字列 

注意
DCLコマンド名としてすでに使用されているシンボル名を割り当てないでください。 IF,THEN,ELSE,およびGOTOのようなシンボルの割り当ては, コマンド・プロシージャの実行を妨げる可能性がありますので, 行わないでください。

パラメータ

シンボル名

シンボル名に対して,文字から255文字までの文字列を定義します。 シンボル名には,DEC補助文字(DEC MCS)文字セットの英数字,アンダースコア(_), またはドル記号($)を含めることができます。 ただし,シンボル名は英字(大文字と小文字は同じとみなします),アンダースコア, またはドル記号から始めなければなりません。割り当て文に等号を1つ(=)指定すると, シンボル名を現在のコマンド・レベルのローカル・シンボル・テーブルに登録します。 割り当て文に等号2つ(==)を指定すると, シンボル名をグローバル・シンボル・テーブルに登録します。

文字列

シンボルに割り当てられる文字列値を指定します。 この文字列には,英数字または特殊文字を含めることができます。 DCLは,文字列割り当て文を記憶するために,1024バイトのバッファを使用します。 したがって,シンボル名,文字列,および文字列内に含まれるシンボル置換の長さは, 1024文字以下でなければなりません。

文字列割り当て文(:=)では,文字列リテラルを引用符(" ")で囲む必要はありません。 この場合には,文字列値は自動的に大文字に変換されます。 また,文字列の前後のスペースやタブは削除され, 文字の間の複数のスペースやタブは1つのスペースに変換されます。

一般に,文字列値を含むシンボルを作成するには, 割り当て文(=)を使用する方が簡単です。なぜなら,割り当て文の場合には, 文字は自動的に大文字に変換されず,また余分なスペースも削除されないからです。 また,割り当て文では,式の内部で文字列演算を実行することができます。

大文字への変換をしないようにしたり, または文字列に含まれる必要なスペースとタブをそのまま保存するには, 文字列を二重引用符で囲まなければなりません。 文字列の内部で二重引用符を使用する場合には,文字列全体を二重引用符で囲み, さらに文字列の中で二重引用符を指定する場所に二重引用符を2つ指定します。 次の例を参照してください。

     $ TEST := "this     is a ""test"" string"
     $ SHOW SYMBOL TEST
       TEST = "this     is a "test" string"

この例では,スペース,小文字,および二重引用符は, シンボル定義の中にそのまま保存されます。

シンボル割り当てを複数行に継続するには,継続文字としてハイフン(-)を使用します。 次の例を参照してください。

     $ LONG_STRING := THIS_SYMBOL_ASSIGNMENT_IS_A_VERY_LONG-
     _$ _SYMBOL_STRING

文字列割り当て文を使って,空文字列をシンボルに割り当てるためには, 割り当て文の右辺に文字列を指定しないようにします。次の例を参照してください。

     $ NULL :=

文字列は,文字列リテラルとして指定するか, または文字列リテラルに評価されるシンボルかレキシカル関数として指定します。 シンボルやレキシカル関数を使用する場合には, シンボル置換を要求するために一重引用符(' ')で囲みます。 シンボル置換についての詳細は,『OpenVMSユーザーズ・マニュアル』 を参照してください。

また,フォーリン・コマンドを定義するために, 文字列割り当て文を使用することもできます。フォーリン・コマンドについての詳細は 『OpenVMSユーザーズ・マニュアル』を参照してください。

[オフセット,サイズ]

シンボル値の一部が置換文字によって上書きされることを指定します。 この形式の文字列割り当て文は,シンボルに割り当てられている値を求め, その値の一部(オフセットとサイズによって定義されている部分) を置換文字列と置き換えます。この場合,かぎ括弧は必ず必要であり, シンボル名と左側のかぎ括弧の間には,スペースを指定できません。

オフセットは,シンボル名の文字列値の先頭を基準にして, 置換される最初の文字の相対位置を指定します。オフセットの値は0から始まります。

コマンドに指定したオフセットが, 変更される文字列に含まれる最後の文字のオフセットより大きい場合には, 文字列の最後と追加される置換文字列のオフセットの間に,スペースが挿入されます。 指定できるオフセットの最大値は,768です。

サイズは,置換される文字数を指定します。サイズの値は1から始まります。

オフセットとサイズは,整数式として指定します。整数式についての詳細は 『OpenVMSユーザーズ・マニュアル』を参照してください。 サイズとオフセットを加算した値は,769より小さくなければなりません。

置換文字列

変更される文字列を上書きするために使用される文字列を指定します。 置換文字列がサイズ引数より短い場合には,指定されたサイズと等しくなるように, 置換文字列の右側に空白が挿入されます。 その後で,置換文字列を使って,シンボル名に割り当てられた文字列が上書きされます。 置換文字列がサイズ引数より長い場合には, 置換文字列の右側の部分が指定されたサイズまで切り捨てられます。

置換文字列は,文字列リテラルとして指定するか, または文字列リテラルに評価されるシンボルやレキシカル関数として指定することができます。 シンボルやレキシカル関数を使用する場合には,シンボル置換を要求するために, 一重引用符(' ')で囲まなければなりません。シンボル置換についての詳細は 『OpenVMSユーザーズ・マニュアル』を参照してください。

  1. $ TIME := SHOW TIME
    $ TIME
    14-DEC-1998 11:55:44
    
    この例では, TIMEというシンボルが, SHOW TIMEというコマンド文字列と等しいと定義されます。 この場合,シンボル名がコマンド文字列の最初の単語として指定されているため, コマンド・インタプリタは自動的にシンボル名を文字列値と置き換え, SHOW TIMEコマンドを実行します。

  2. $ STAT := $DBA1:[CRAMER]STAT
    $ STAT
    
    この例では,STATをフォーリン・コマンドとして定義する方法が示されています。 STATというシンボルは, ドル記号で始まってその後にファイル指定が続く文字列に等しいものとして定義されています。 コマンド・インタプリタは,ファイル指定が実行可能なイメージのファイル指定であること, つまり,ファイル・タイプがEXEのファイルであると仮定します。 したがって,この例ではSTATというシンボルは次のコマンドの同意語になります。
         $ RUN DBA1:[CRAMER]STAT.EXE
    

    この後STATとタイプすると,コマンド・インタプリタはイメージを実行します。

  3. $ A = "this is a big     space."
    $ SHOW SYMBOL A
      A = "this is a big     space."
    $ B := 'A'
    $ SHOW SYMBOL B
      B = "THIS IS A BIG SPACE."
    
    この例では,割り当て文と文字列割り当て文が比較されています。 シンボルAは割り当て文を使って定義されているため, 小文字や複数のスペースはそのまま保存されます。 シンボルBは文字列割り当て文を使って定義されています。 一重引用符(' ')が必要な点に注意してください。一重引用符を使用しないと, Bというシンボル名はリテラル文字列Aに等しいものとして定義されてしまいます。 文字列割り当て文を使用すると,シンボルAの値がシンボルBに割り当てられる際に, 文字は大文字に変換され,複数のスペースは1つのスペースに変換されてしまいます。

  4. $ FILE_NAME := MYFILE
    $ FILE_NAME[0,2]:= OL
    $ SHOW SYMBOL FILE_NAME
      FILE_NAME = "OLFILE"
    
    この例では,シンボルFILE_NAMEに割り当てられた文字列の最初の2文字を, 文字列OLに変更する置換式が示されています。 オフセット0は文字列の最初の文字を指定し,サイズ指定の2は, 文字列の長さを指定しています。

  5. $ FILE_NAME := MYFILE
    $ FILE_TYPE := .TST
    $ FILE_NAME[F$LENGTH(FILE_NAME),4] := 'FILE_TYPE'
    $ SHOW SYMBOL FILE_NAME
      FILE_NAME = "MYFILE.TST"
    
    この例では,シンボルFILE_NAMEに文字列MYFILEを, シンボルFILE_TYPEに文字列.TSTを各々代入しています。 3番目の割り当て文では,レキシカル関数F$LENGTHを用いて, 上書きを始めるオフセット値を特定しています。 シンボルFILE_TYPEは,置換文字列.TST)を参照するために用いられます。 シンボルの展開を要求するために,一重引用符(' ')を指定しています。

    レキシカル関数F$LENGTHは,シンボルFILE_NAMEの文字列の長さを返します。 この値は,オフセットとして使用されます。シンボルFILE_TYPEの文字列の4文字を, FILE_NAMEの文字列の最後に追加しています。シンボルFILE_NAMEの結果は, 文字列 MYFILE.TSTになります。


@ (プロシージャの実行)

コマンド・プロシージャを実行します。または,コマンド・インタプリタに対して, 特定のファイルまたは装置からのコマンド入力を読み込むよう要求します。

フォーマット

     @  ファイル指定 [パラメータ[,...]] 

パラメータ

ファイル指定

前のコマンドに対する入力が読み込まれる装置またはファイル, あるいは実行されるコマンド・プロシージャを指定します。 省略時のフィアル・タイプは.COMです。 アスタリスク(*)やパーセント記号(%)などのワイルドカード文字を, ファイル指定で使用することはできません。

パラメータ[,...]

コマンド・プロシージャに渡される 1つから8つの省略可能なパラメータを指定します。 これらのパラメータには, 文字列値を入力した順に(P1, P2, . . . P8)の8つのシンボルが割り当てられます。 シンボルは,指定されたコマンド・プロシージャの内部でのみ有効です。 各パラメータは,1つまたは複数の空白で区切ります。 空パラメータを指定するには,連続する2つの引用符("")を使用します。 パラメータには,英数字または特殊文字を含む文字列値を指定することができます。 ただし次の制約があります。

  • コマンド・インタプリタは英字を大文字に変換し, 各パラメータの区切り文字に空白を使用します。 空白や小文字を含むパラメータを渡すには,パラメータを引用符で囲む必要があります。

  • 最初のパラメータがスラッシュ(/)から始まる場合には, パラメータを引用符(" ")で囲まなければなりません。

  • リテラルとしての引用符や空白を含むパラメータを渡すには, 文字列全体を二重引用符で囲み,文字列の中で連続する2つの二重引用符を指定します。 たとえば,コマンド・プロシージャTEST.COMが次のコマンド行を含んでいたとします。
       $ WRITE SYS$OUTPUT P1
    

    この時,DCLプロンプト($)に対して次のコマンドを入力します。

       $ @TEST "Never say ""quit"""
    

    TEST.COMというプロシージャを実行すると, パラメータP1には次の文字列が割り当てられます。

       Never say "quit" 
    

    文字列に引用符が含まれており,空白が含まれていない場合には, 引用符は文字列の中でそのまま保存され, 引用符で囲まれた英字は小文字のまま保存されます。 たとえば,DCLプロンプトに対して次のコマンドを入力します。

       $ @TEST abc"def"ghi
    

    TEST.COMというプロシージャを実行すると, パラメータP1には次の文字列が割り当てられます。

       ABC"def"GHI 
    

シンボルをパラメータとして使用する場合には, シンボル置換を実行するためにシンボルを一重引用符(' ')で囲む必要があります。 次の例を参照してください。

     $ NAME = "JOHNSON"
     $ @INFO 'NAME'

一重引用符を使用すると,"JOHNSON"という値がNAMEというシンボルと置き換えられます。 したがって,"JOHNSON"というパラメータが, P1としてINFO.COMに渡されます。

説明

@コマンドは,以下を含むコマンド・プロシージャを実行する際に使用します。

コマンド,またはデータ, あるいはその両方を含むコマンド・プロシージャを実行するには, コマンド行の最初に@コマンドを入力し, その次にコマンド・プロシージャ・ファイルの名前を指定します。 コマンド・プロシージャにはDCLコマンド, および現在実行中のコマンドまたはプログラムへの入力データを含めることができます。 コマンド・プロシージャ内のすべてのDCLコマンドは, ドル記号($)で始めなければなりません。 コマンド行がハイフン(-)により継続している場合は, その継続行はドル記号から始まらなくても構いません。

コマンド・プロシージャ中で,行の最初にドル記号がなく, 継続行でもないコマンド行は, 現在実行中のコマンドまたはプログラムへの入力データとして扱われます。 DECKコマンドを使用すると, データのレコード位置にドル記号があることを指定できます。

コマンド・プロシージャ内に, 他のコマンド・プロシージャを実行する@コマンドを含めることもできます。 トップ・レベルのコマンド・プロシージャも含め, 最大で16回までコマンド・プロシージャをネストさせることができます。 SUBMITコマンドを使用する, またはシステム・カード・リーダにコマンド・プロシージャを含むカード・デックを置くことにより, コマンド・プロシージャをバッチ・ジョブとしてキューに登録することもできます。

特定のコマンド行に対する修飾子,またはパラメータ, あるいはその両方を含むコマンド・プロシージャを実行するには,通常, コマンド行で修飾子またはパラメータを指定する位置に @コマンドを置きます。次に, 修飾子またはパラメータを含むコマンド・プロシージャ・ファイル名を指定します。

コマンド・プロシージャ・ファイルがコマンドに対するパラメータで始まる場合は, @コマンドの前に空白が必要です。次の例を参照してください。

     $ CREATE TEST.COM
     TIME
     [Ctrl/Z]
     $ SHOW @TEST
       14-DEC-1998 17:20:26

反対に,コマンド・プロシージャ・ファイルがコマンドに対する修飾子で始まる場合は, @コマンドの前に空白を入れてはいけません

     $ CREATE TEST_2.COM
     /SIZE
     [Ctrl/Z]
     $ DIR@TEST_2

     Directory WORK$:[SCHEDULE]
 
     JANUARY.TXT;8         14-DEC-1998 15:47:45.57
     FEBRUARY.TXT;7        14-DEC-1998 15:43:16.20
     MARCH.TXT;6           14-DEC-1998 11:11:45.74
        .
        .
        .
     Total of 11 files.

コマンド・プロシージャ・ファイルにパラメータ,修飾子, あるいはその両方が含まれている場合は, コマンド行をドル記号で始めてはいけません。 @ファイル指定に続くコマンド行のデータは, プロシージャに対するパラメータとして扱われます。

修飾子

/OUTPUT=ファイル指定

コマンド・プロシージャの出力を書き込むファイル名を指定します。 省略時の設定では,出力は現在のSYS$OUTPUT装置に書き込まれます。 省略時の出力ファイル・タイプは.LISです。 アスタリスク(*)およびパーセント記号(%)ワイルドカード文字を, ファイル指定で使用することはできません。 システムからの応答とエラー・メッセージは, 指定したファイルとSYS$COMMANDの両方に書き込まれます。 /OUTPUT修飾子を指定する場合は, コマンド・プロシージャのファイル指定のすぐあとに修飾子を指定しなければなりません。 そのように指定しないと, /OUTPUT修飾子はコマンド・プロシージャに渡されるパラメータとして解釈されます。

SYS$OUTPUTの定義を変更すれば, コマンド・プロシージャからの出力先を変更することができます。 コマンド・プロシージャの1行目として次のコマンドを指定すると, 出力は指定したファイルに送られます。

     $ DEFINE SYS$OUTPUT ファイル指定

このプロシージャが終了すると,SYS$OUTPUTはもとの等価文字列に戻されます。 この方法では,コマンド・プロシージャを実行するときに /OUTPUT修飾子を使用した場合と同じ結果になります。

  1. $ CREATE DOFOR.COM
    $ ON WARNING THEN EXIT
    $ IF P1.EQS."" THEN INQUIRE P1 FILE
    $ FORTRAN/LIST 'P1'
    $ LINK 'P1'
    $ RUN 'P1'
    $ PRINT 'P1'
    [Ctrl/Z]
    $ @DOFOR AVERAGE
    
    この例では,DOFOR.COMというコマンド・プロシージャが示されています。 このコマンド・プロシージャは,プログラムをコンパイルし,リンクし, 実行するために,それぞれFORTRANコマンド,LINKコマンド, およびRUNコマンドを実行します。 ONコマンドはコマンドの実行結果が警告状態やエラー状態である場合には, プロシージャの実行を継続しないことを要求しています。

    DOFOR.COMを実行するときに, FORTRANプログラムのファイル指定をパラメータP1として渡すことができます。 プロシージャを実行するときにP1の値を指定しなかった場合には, INQUIREコマンドがターミナルにプロンプト・メッセージを表示し, そのプロンプトに対して入力した値が,シンボルP1に割り当てられます。 この例では,ファイル名AVERAGEがP1に割り当てられています。 FORTRANコマンド,LINKコマンド,RUNコマンド,およびPRINTコマンドには, それぞれ省略時のファイル・タイプが設定されているため, ファイル・タイプは含まれていません。

  2. $ @MASTER/OUTPUT=MASTER.LOG
    
    このコマンドは,MASTER.COMという名前のプロシージャを実行します。 出力はすべてMASTER.LOGファイルに書き込まれます。

  3. $ CREATE FILES.COM
    *.FOR, *.OBJ
    [Ctrl/Z]
    $ DIRECTORY @FILES
    
    この例はFILES.COMコマンド・プロシージャを示しています。 このファイルには,DCLコマンド行へのパラメータが含まれています。 ファイル全体が DCLにより,コマンド入力として処理されます。 このプロシージャをDIRECTORYコマンドの後で実行して, 現在の省略時のディレクトリ内のFORTRANソース・ファイルとオブジェクト・ファイルの一覧を表示させています。

  4. $ CREATE QUALIFIERS.COM
    /DEBUG/SYMBOL_TABLE/MAP/FULL/CROSS_REFERENCE
    [Ctrl/Z]
    $ LINK SYNAPSE@QUALIFIERS
    
    この例では,LINKコマンドに対する修飾子を含んでいる QUALIFIERS.COMというコマンド・プロシージャが示されています。 LINKコマンドを入力する時に,リンクするファイルのファイル指定のすぐ後に, コマンド・プロシージャを指定します。 この時,ファイル指定と@コマンドの間には空白を入れてはいけません。

  5. $ CREATE SUBPROCES.COM
    $ RUN 'P1' -
      /BUFFER_LIMIT=1024 -
      /FILE_LIMIT=4 -
      /PAGE_FILES=256 -
      /QUEUE_LIMIT=2 -
      /SUBPROCESS_LIMIT=2 -
      'P2'  'P3'  'P4'  'P5'  'P6'  'P7'  'P8'
    [Ctrl/Z]
    $ @SUBPROCES  LIBRA  /PROCESS_NAME=LIBRA
    
    この例は,SUBPROCES.COMというコマンド・プロシージャを示しています。 このプロシージャは,イメージを実行するためのサブプロセスを生成する RUNコマンドを実行し,また, サブプロセス生成のためのクォータを定義する修飾子を含んでいます。 実行するイメージ名は,パラメータP1で渡されます。パラメータP2からP8は, 追加する修飾子を指定するために使用できます。

    この例では,P1にLIBRAというファイル名が割り当てられます。 これがサブプロセスで実行するイメージの名前です。 P2には/PROCESS_NAME=LIBRAという修飾子が割り当てられます。 これがRUNコマンドに追加される修飾子です。

  6. $ CREATE EDOC.COM
    $ ASSIGN SYS$COMMAND:  SYS$INPUT
    $ NEXT:
    $      INQUIRE NAME "File name"
    $      IF NAME.EQS."" THEN EXIT
    $      EDIT/TPU 'NAME'.DOC
    $      GOTO NEXT
    [Ctrl/Z]
    $ @EDOC
    
    このEDOC.COMというプロシージャは,EVEエディタを起動します。 編集セッション終了時に,ラベルNEXTでプロシージャはループします。 各ループにおいて,編集するファイル名を要求します。 省略時のファイル・タイプは.DOCです。 INQUIREコマンドへの応答に空行が入力されると, EXITコマンドでプロシージャが終了します。

    ASSIGNコマンドで,プロシージャ実行中にSYS$INPUTの等価名を変更しています。 この変更により,EVEエディタがコマンド・プロシージャ・ファイルではなく, ターミナルから入力データを読むことができます。 SYS$INPUTが変更されない場合には, 省略時の入力データ・ストリームはコマンド・プロシージャ・ファイルになります。 コマンド・プロシージャ終了時に, SYS$INPUTは解除され元の設定に戻ります。

  7. ! PEOPLE.DAT
    ! A set of data with embedded key qualifiers for the SORT command.
    ! 
    ! Usage: SORT@PEOPLE.DAT
    !
    /KEY=(POS:10,SIZE:10) sys$input people.out
    Fred     Flintstone    555-1234
    Barney   Rubble        555-2244
    Wilma    Flintstone    555-1234
    Betty    Rubble        555-2244
    George   Slate         555-8911
    Dino     Dinosaur      555-1234
    $!
    $ purge people.out
    $ type people.out
    

    ソートされた名簿をPEOPLE.OUTファイルに作成し,それを表示します。 この例では,DCLコマンドの中間で "@" を使用した場合に, DCLがそのファイル全体をコマンド入力として処理することを示します。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]