日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V7.3-2
ライブラリ

タイトルページ
目次
まえがき
リファレンス・セクション
付録 A:廃止されたコマンド
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム
OpenVMS | HPE 日本

OpenVMS
DCL ディクショナリ


目次 索引




コマンド行で,この記号の後はすべてコメントであり,コマンドの一部として処理されないことを示します。

形式

!



$ !
$ WRITE SYS$OUTPUT "hello"     ! This command should output "hello".
hello
$ FOO = " "                    ! This command defines FOO as a blank.
$ FOO WRITE SYS$OUTPUT "hello" ! This command should output "hello".
hello
$ FOO = "!"                    ! This command defines FOO as a !.
$ FOO WRITE SYS$OUTPUT "hello" ! This command should be ignored.
$




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

形式

シンボル名 =[=] 式

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

注意

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


パラメータ



シンボル名

シンボル名に対して,1 文字から 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 に切り捨てます。

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

置換式

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

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


説明

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

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

  • 現在のプロセスでシンボル・テーブルおよびラベルを含めるためにコマンド・インタプリタが使用できる領域のサイズ
    領域のサイズは,各プロセスごとにシステム・パラメータ CLISYMTBL で決まります。

  • シンボル名のサイズとその値
    コマンド・インタプリタは,シンボル名とその値に対して領域を割り当てます。また,各シンボルには数バイト多めに割り当てられます。


#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 のようなシンボルの割り当ては,コマンド・プロシージャの実行を妨げる可能性がありますので,行わないでください。


パラメータ



シンボル名

シンボル名に対して,1 文字から 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-2001 11:55:44

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

#2

$ STAT := $DKA1:[TEDESCO]STAT
$ STAT

この例では,STAT をフォーリン・コマンドとして定義する方法が示されています。 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 になります。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項