# Compaq OpenVMS
DCL ディクショナリ

前へ | 次へ | 目次 | 索引

# HELP/MESSAGE

> システム・メッセージの説明を表示します。

## 形式

> HELP/MESSAGE [/修飾子 [...]] [検索文字列]

## パラメータ

> ### 検索文字列

> メッセージ識別子，またはメッセージ・テキスト中の 1 つまたは複数の単語を指定します。省略時の設定では，HELP/MESSAGE は最後に実行したコマンドにより生成されたメッセージ (つまり，現在 CLI シンボル $STATUS に格納されている値に関連するメッセージ) の説明を表示します。

> Help Message ユーティリティ(MSGHLP) は，次の規則に従って検索文字列を扱います。

> - 2 文字以下の英数字文字は無視する。

> - 単語は任意の順序で指定できる。

>   最初に一般的ではない単語を指定すると，検索にかかる時間を短縮することができます。

> - 非英数字文字は，検索時に無視される (ただしメッセージの前に付くパーセント記号 (%) およびハイフン (-) は例外)。そのためこれらの特殊文字を含み変数 (たとえばファイル名) を削除したメッセージを，検索文字列に指定することができる。

>   指定したメッセージを Help Message がデータベースで見つけられなかった場合は，先行の特殊文字，ファシリティ・コード，および重大度を削除し，もう 1 回コマンドを実行します。いくつかのメッセージは，ファシリティ固有のメッセージではなく， "共有"メッセージと記されています。

> - Help Message は，検索文字列に指定した文字で始まるすべての単語を検索します。単語全体が一致する単語を検索する場合は，/WORD_MATCH=WHOLE_WORD 修飾子を指定します。

## 説明

> Help Message ユーティリティは，テキスト・ファイル中のメッセージの説明にアクセスします。このテキスト・ファイルは，最新の『OpenVMS system messages documentation』から派生したファイルです。またオプションで (ユーザが指定したメッセージ・ドキュメントを含む) 他のソース・ファイルから派生させることもできます。省略時の設定では Help Message は，最後に終了したコマンドに関する情報を提供します。

> 1 つまたは複数の指定したファシリティにより生成される，すべてのメッセージを抽出することができます。この出力をファイルに書き込むと，ユーザ独自のメッセージ・ドキュメントを作成し印刷することができます。

> Help Message データベースにコメントまたはメッセージを追加する方法についての詳細は，『OpenVMS System Messages: Companion Guide for Help Message Users』を参照してください。

## 修飾子

> ### /BRIEF

> メッセージ・テキストだけを表示します。

> ### /DELETE=ファイル名.MSGHLP

> 以下のファイルの 1 つから指定した最初に見つかった .MSGHLP ファイル内のすべてのメッセージを削除します。

> - /LIBRARY 修飾子で指定された .MSGHLP$DATA ファイル

> - /LIBRARY 修飾子で指定された検索順序内の，最初の .MSGHLP$DATA ファイル

> - 省略時の検索パスで最初の .MSGHLP$DATA ファイル (論理名 MSGHLP$LIBRARY で定義されたファイル)

> - SYS$HELP:MSGHLP$LIBRARY.MSGHLP$DATA (省略時の .MSGHLP$DATA ファイル)

> 弊社が提供したデータベースからメッセージを削除するには，弊社が提供した .MSGHLP$DATA ファイルに対する書き込みアクセス権が必要です。

> 注意 検索文字列を指定して .MSGHLP ファイルを作成する場合は，出力される .MSGHLP ファイルをチェックして，データベースから削除したくない意図しないメッセージが，検索されなかったことを確認してください。このようなメッセージは，削除操作を行う前に .MSGHLP ファイルの外で編集してください。

> ### /EXTRACT=ファイル名.MSGHLP

> データベースからメッセージを取り出し，編集可能な .MSGHLP ファイルを作成します。このファイルは，/INSERT および /DELETE 操作の入力としても使用できます。 /EXTRACT 修飾子は，.MSGHLP$DATA ファイル，/LIBRARY 修飾子で指定される論理検索順序，または論理名 MSGHLP$LIBRARY で定義される省略時の検索順序から，データを取り出します。 /EXTRACT 修飾子を指定しない場合は，Help Message は省略時の標準的な形式で出力します(/OUTPUT を参照してください)。

> ### /FACILITY=?

> ### /FACILITY=(ファシリティ名 [,...])

> ### /FACILITY=ALL

> データベース内で一致するかどうかが検索されるファシリティを指定します。

> 省略時のデータベースまたは /LIBRARY で指定されたデータベース内のすべてのファシリティのリストを出力するには，/FACILITY=? と入力します。

> 検索範囲を狭めるために，1 つまたは複数のファシリティ名を /FACILITY に指定します(複数のファシリティを指定する場合には，コンマで区切り括弧で囲みます)。Help Message は，指定されたファシリティで生成されるメッセージの中で一致するものだけを出力します。

> データベース内のすべてのファシリティのメッセージを出力するには， /FACILITY=ALL を指定します。他のファシリティが暗黙的に指定されない限り， /FACILITY=ALL が省略時の設定になります。これは，たとえば /STATUS を指定したり，$STATUS という CLI シンボルの値を使用する場合などで，この場合には特定のファシリティが自動的に指定されます。同様に，ファシリティ名を含んだメッセージのカット・アンド・ペーストは， /FACILITY 修飾子の使用を無効にします。

> /FACILITY 修飾子の使用についての詳細は，『OpenVMS System Messages: Companion Guide for Help Message Users』を参照してください。

> ### /FULL (省略時の設定)

> 完全なメッセージの説明を出力します。メッセージ・テキスト，ファシリティ名，説明，ユーザ処置，ユーザのコメントが表示されます。

> ### /INSERT=ファイル名.MSGHLP

> ### /INSERT=TT:

> 指定された .MSGHLP ファイルで最初に見つかったファイル内の新しいまたは変更された情報で，以下のファイルのうち 1 つを更新します。または，/INSERT=TT: が指定された場合端末から入力されたデータを直接変更します。

> - /LIBRARY 修飾子で指定された .MSGHLP$DATA ファイル

> - /LIBRARY 修飾子で指定された検索パス内の，最初の .MSGHLP$DATA ファイル

> - 省略時の検索パス内の最初の .MSGHLP$DATA ファイル (論理名 MSGHLP$LIBRARY で定義されたファイル)

> - SYS$HELP:MSGHLP$LIBRARY.MSGHLP$DATA (省略時の .MSGHLP$DATA ファイル)

> 弊社が提供する .MSGHLP$DATA ファイルにデータを挿入するには，このファイルに対する書き込みアクセス権が必要です。ユーザが指定したデータは， Help Message の出力中で，変更バーが付けられます。

> ### /LIBRARY=ディスク:[ディレクトリ]ファイル名.MSGHLP$DATA

> ### /LIBRARY=ディスク:[ディレクトリ]

> ### /LIBRARY=論理名

> 現在のコマンドに対するメッセージ・データベースに，特定の .MSGHLP$DATA ファイル，指定ディレクトリ内の全 .MSGHLP$DATA ファイル，または論理名による特定の検索パスを定義します。

> 大部分の操作では，省略時のデータベースは SYS$HELP:MSGHLP$LIBRARY.MSGHLP$DATA であるか，論理名 MSGHLP$LIBRARY で定義された .MSGHLP$DATA ファイルの検索パスです。

> /DELETE および /INSERT 操作では，省略時のデータベースは， SYS$HELP:MSGHLP$LIBRARY.MSGHLP$DATA であるか，論理名 MSGHLP$LIBRARY で定義された検索パスの最初のファイルです。

> ### /OUTPUT=ファイル指定

> 指定したファイルに出力を書き込みます。省略時の設定では， Help Message は SYS$OUTPUT に出力します。これは通常，ターミナルです。 /OUTPUT=ファイル指定と /PAGE は同時に指定することはできません。

> ### /PAGE (スクリーン表示の際の省略時の設定)

> ### /NOPAGE

> 1 度に 1 画面分のターミナル出力を表示します。ページ長は，SET TERMINAL/PAGE で指定した値よりも 1 行だけ短い値に，自動的に設定されます。 /PAGE と /OUTPUT=ファイル指定は，同時に指定することはできません。

> ### /SECTION_FILE=*

> ### /SECTION_FILE=ファイル指定

> Help Message が，ファイル中のメッセージの $STATUS 値を解釈できるよう，メッセージ・セクション・ファイルを指定します。省略時のファイル指定は SYS$MESSAGE:.EXE です。 /SECTION_FILE=* を指定すると，OpenVMS が提供するすべてのメッセージ・セクション・ファイルも自動的に含まれます。詳細は『OpenVMS System Messages: Companion Guide for Help Message Users』を参照してください。

> 注意 この修飾子を使用した結果は， SET MESSAGE コマンドによる結果とは関係ありません。 Help Message ユーティリティと Message ユーティリティは，互いに影響を与えることはありません。結果を得るためには，各ユーティリティをそれぞれコーディングしなければなりません。

> ### /SORT

> ### /NOSORT (省略時の設定)

> 出力をアクファベット順にソートします。ソートに失敗した場合は， /WORK_FILES 修飾子を使用して再試行してください。

> ### /STATUS=状態コード

> ### /STATUS='シンボル'

> ### /STATUS='$STATUS' (省略時の設定)

> 指定した状態コードに相当するメッセージを出力します。状態コードは 10 進数，16 進数，またはアポストロフィで囲んだシンボルで指定します。先行する 0 は省略できますが，16 進数の前には "%X" を付けなければなりません。

> HELP/MESSAGE コマンドに検索文字列が含まれない場合， Help Message は $STATUS という CLI シンボルに相当するメッセージを，省略時の値として出力します。つまり，Help Message は，最後に実行したコマンドがどのように終了したかを示す情報を表示します。

> /STATUS 修飾子を指定した場合は，検索文字列や /FACILITY 修飾子は指定できません。検索文字列を省略し，/STATUS='$STATUS' という省略時設定を使用する場合は， /FACILITY を指定することはできません。

> ### /WORD_MATCH=INITIAL_SUBSTRING (省略時の設定)

> ### /WORD_MATCH=WHOLE_WORD

> /WORD_MATCH=INITIAL_SUBSTRING は，検索文字列に指定した単語で始まるすべての単語を検索します。検索文字列には，複数の単語を指定することができます。すべての単語が一致するメッセージだけが出力されます。この時，単語の順序には関係がありません。

> /WORD_MATCH=WHOLE_WORD は，単語全体が一致するものを検索し，指定した単語を細かに検索します。たとえば，ACC に関する精密な検索は， ACC という文字で始まる単語を持つ，多数の他のメッセージを表示します。

> ### /WORK_FILES=nn

> ### /WORK_FILES=0 (修飾子が省略された場合の省略時の設定)

> ### /WORK_FILES=2 (値なしで修飾子が指定された場合の省略時の設定)

> /SORT 修飾子を指定した時，使用する作業ファイルを指定します。 nn には， 0 から 10 の値を指定します。 /SORT 修飾子が指定されていない場合は，この修飾子は無視されます。

##

### 例

#1
    $ SHOW DEVICE KUDOS
    %SYSTEM-W-NOSUCHDEV, no such device available
    $ HELP/MESSAGE

> 最初のコマンドはエラーになります。修飾子のない省略時の HELP/MESSAGE コマンドは， NOSUCHDEV という SYSTEM ファシリティ・メッセージの説明を表示します。

#2
    $ HELP/MESSAGE ACCVIO
    $ HELP/MESSAGE/BRIEF ACCVIO
    $ HELP/MESSAGE/FACILITY=SYSTEM ACCVIO
    $ HELP/MESSAGE VIRTUAL ACCESS
    $ HELP/MESSAGE/STATUS=12
    $ HELP/MESSAGE/STATUS=%XC

> これらのコマンドは，ACCVIO メッセージにアクセスし表示するためのいろいろな修飾子を，異なる形式で使用する方法を示しています。

#3
    $ HELP/MESSAGE/BRIEF ACC
    $ HELP/MESSAGE/BRIEF/WORD_MATCH=WHOLE_WORD ACC

> 最初のコマンドでは，Help Message は省略時の設定により "ACC" という文字列で始まる多くの単語を検索します。 /WORD_MATCH=WHOLE_WORD 修飾子を指定すると，単語だけに厳密に一致するよう検索処理を改良することができます。

#4
    $ HELP/MESSAGE/FACILITY=(BACKUP,SHARED)/SORT/OUTPUT=MESSAGES.TXT

> このコマンドは，BACKUP ファシリティから発行されるすべてのメッセージと， "Shared by several facilities," と記載されているメッセージを選択し，アルファベット順に並べ，印刷可能な MESSAGES.TXT というファイルを出力します。

> メッセージを選択し，それらをファイルに出力することによって，ユーザ独自の変更したメッセージ・ドキュメントを作成，および印刷することができます。

#5
    $ HELP/MESSAGE/EXTRACT=BADMESSAGE.MSGHLP BADMESSAGE
    $ HELP/MESSAGE/DELETE=BADMESSAGE.MSGHLP-
    _$ /LIBRARY=SYS$LOGIN:MYMESSAGES.MSGHLP$DATA
    $ CONVERT SYS$LOGIN:MYMESSAGES.MSGHLP$DATA-
    _$ SYS$LOGIN:MYMESSAGES.MSGHLP$DATA
    $ PURGE SYS$LOGIN:MYMESSAGES.MSGHLP$DATA
    $ HELP/MESSAGE/INSERT=BADMESSAGE.MSGHLP

> 最初のコマンドは，BADMESSAGE という仮のメッセージを省略時のデータベースから取り出し，それを BADMESSAGE.MSGHLP というファイルに出力します。

> 2 番目のコマンドは，/LIBRARY 修飾子に指定した MYMESSAGES.MSGHLP$DATA というファイルから，BADMESSAGE の説明を削除するために，この BADMESSAGE.MSGHLP というファイルを使用しています。

> 次の 2 つのコマンドは，削除後にディスク領域を節約するために，ファイル MYMESSAGES.MSGHLP$DATA ファイルを圧縮しています。

> 最後のコマンドは，省略時の .MSGHLP$DATA ファイルに BADMESSAGE メッセージを挿入するために，ファイル BADMESSAGE.MSGHLP を使用しています。ファイル BADMESSAGE>MSGHLP は，編集されている可能性があります。

#6
    $ HELP/MESSAGE/EXTRACT=NOSNO.MSGHLP NOSNO
    $ EDIT/EDT NOSNO.MSGHLP
    1NOSNO, can't ski; no snow
    2XCSKI, XCSKI Program
    3Your attempt to ski failed because there is no snow.
    4Wait until there is snow and attempt the operation again.
    5If you don't want to wait, go to a location where there is
    5snow and ski there.
    5
    5Or, try ice skating instead!
    [EXIT]
    $ HELP/MESSAGE/INSERT=NOSNO.MSGHLP

> このコマンドは，弊社が提供する .MSGHLP$DATA ファイルに書き込みアクセス権を持つユーザが，弊社の提供しているメッセージにコメントを追加する様子を示しています。

> 最初のコマンドは，NOSNO という仮のメッセージをファイル NOSNO.MSGHLP に出力しています。 2 番目のコマンドで，その .MSGHLP ファイルを編集し，メッセージの最後にコメントを追加しています。各コメント行には，それが空白行であっても，"5" という文字が最初に付けられています。次のコマンドで NOSNO.MSGHLP を使用してデータベースを更新し，省略時の .MSGHLP$DATA ファイルに変更したメッセージを挿入しています。

# IF

> 式の値を評価し，次のように指定された構文に基づいて，コマンドを実行します。

> - 評価が真の場合，THEN キーワードに続く１コマンド

> - 条件が真の場合，$THEN ステートメントに続く複数のコマンド

> - 条件が偽の場合，$ELSE ステートメントに続く複数のコマンド

## 形式

> $ IF 式 THEN [$] コマンド

> または

> $ IF 式

> $ THEN [コマンド]

> コマンド

> . . .

> $ [ELSE] [コマンド]

> コマンド

> . . .

> $ ENDIF

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

## パラメータ

> ### 式

> 実行されるテストを定義します。式は，１つまたは複数の数値定数，文字列リテラル，シンボル名，またはレキシカル関数から構成でき，各要素は論理演算子，算術演算子，あるいは文字列演算子で区切ることができます。

> IF コマンドに指定する式は，そのコマンドが実行されるときに，自動的に評価されます。英字から始まる文字列で，引用符で囲まれていない文字列は，すべてシンボル名またはレキシカル関数であると解釈され， IF コマンドは，その文字列を現在の値と置き換えます。

> IF コマンドに指定する式のシンボル置換は，反復置換ではありません。つまり，各シンボルは１回だけしか置き換えられません。しかし，反復置換が必要な場合には，シンボル名の前に引用符，またはアンパサンドを指定します。

> コマンド・インタプリタは， IF コマンドに未定義シンボルが含まれている場合，そのコマンドを実行しません。この場合，コマンド・インタプリタは，警告メッセージを表示し，プロシージャの次のコマンドを実行します。

> 演算子のまとめと式の指定方法についての詳細は，『Compaq OpenVMS ユーザーズ・マニュアル』を参照してください。

> ### コマンド

> 式の結果が真または偽の場合，実行する 1 つまたは複数のコマンドを構文に従って指定します。

## 説明

> IFコマンドは，式の値をテストして式の結果が真の場合，指定されたコマンドを実行します。結果が奇数整数値，文字Y，y，T，またはtで始まる文字列値，または奇数の数値文字列値の場合，式は真になります。

> 結果が偶数整数値，文字Y，y，T，またはt以外で始まる文字列値，または偶数の数値文字列値の場合，式は偽になります。

##

### 例

#1
    $ COUNT = 0
    $ LOOP:
    $ COUNT = COUNT + 1
       .
       .
       .
    $ IF COUNT .LE. 10 THEN GOTO LOOP
    $ EXIT

> この例は，COUNT というシンボル名と IF ステートメントを使用して，コマンド・プロシージャ内でループを設定する方法を示しています。 IF ステートメントは COUNT の値を調べ， COUNT の値が 10 より大きくなったときに，EXIT コマンドを実行します。

#2
    $ IF P1 .EQS. "" THEN GOTO DEFAULT
    $ IF (P1 .EQS. "A") .OR. (P1 .EQS. "B") THEN GOTO 'P1'
    $ WRITE SYS$OUTPUT "Unrecognized parameter option ''P1' "
    $ EXIT
    $ A:       !  Process option a
     .
     .
     .
    $ EXIT
    $ B:       !  Process option b
     .
     .
     .
    $ EXIT
    $ DEFAULT: !  Default processing
     .
     .
     .
    $ EXIT

> この例は，パラメータが渡されたどうかを調べるコマンド・プロシージャです。 GOTOコマンドは，パラメータで指定されたラベルへ制御を移します。

> プロシージャがパラメータで実行されると，プロシージャはそのパラメータを使用して分岐先のラベルを決めます。次に例を示します。

>     @TESTCOM A

> 上記のプロシージャを実行した場合，ラベル A へ分岐します。 EEXIT コマンドは，ラベル Bの手前でプロシージャを終了することに注意してください。

#3
    $  SET NOON
     .
     .
     .
    $  LINK CYGNUS,DRACO,SERVICE/LIBRARY
    $ IF $STATUS
    $ THEN
    $  RUN CYGNUS
    $ ELSE
    $   WRITE SYS$OUTPUT "LINK FAILED"
    $ ENDIF
    $ EXIT

> このコマンド・プロシージャは， SET NOON コマンドでエラー・チェックを無効にしています。 LINK コマンド実行後， IF コマンドは予約済みのグローバル・シンボル $STATUS の値をテストします。 $STATUS の値が LINK コマンドの正常終了を示す場合は，次にプログラム CYGNUS を実行します。 LINK コマンドがエラー状態値を返した場合は，コマンド・プロシージャはメッセージを出力して終了します。

前へ | 次へ | 目次 | 索引