# Compaq OpenVMS
DCL ディクショナリ

前へ | 次へ | 目次 | 索引

# DIAGNOSE (Alpha のみ)

> Alpha システム上で， DIAGNOSE コマンドは DECevent 管理ユーティリティを起動し， 1 つまたは複数のログ・ファイルの内容を選択的にレポートします。

> DECevent ユーティリティについての詳細は，『Compaq OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』またはオンライン・ヘルプを参照してください。

## 形式

> DIAGNOSE [修飾子...] [ファイル指定][,...]

# DIFFERENCES

> 2つのディスク・ファイルの内容を比較し，一致しないレコードのリストを表示します。

## 形式

> DIFFERENCES 第1ファイル [第2ファイル]

## パラメータ

> ### 第1ファイル

> 比較のために入力する最初のファイルの名前を指定します。ファイルには，ファイル名とファイル・タイプを指定しなければなりません。ファイルの中で，ワイルドカード文字は使用できません。

> ### 第2ファイル

> 比較のために2番目に入力するファイルの名前を指定します。省略したフィールドに対しては，第1ファイルの対応するフィールドが使用されます。ファイルの中で，ワイルドカード文字は使用できません。

> 第2ファイルを指定しない場合には，DIFFERENCES コマンドは，第1ファイルの1つ前のバージョンを使用します。

## 説明

> 2 つのファイルが同じかどうか，また異なる場合どのように異なるかを判定するには， DIFFERENCES コマンドを使用します。 DIFFERENCES コマンドは，指定された 2 つのファイルをレコードごとに比較し，異なる場合は差をリストする出力ファイルを生成します。

> DIFFERENCES コマンドの修飾子は，次のように機能別に分類できます。

> - DIFFERENCES コマンドにレコードごとのデータを無視するように要求する修飾子

>   > /COMMENT_DELIMITERS
>   > /IGNORE

>   これらの修飾子を使用すると，コメントを表す文字を定義したり，ファイルを比較する場合に無視する文字または文字のクラスを指定したりすることができます。たとえば，DIFFERENCES コマンドに，余分な空白行や行の中の余分なスペースを無視させることができます。

>   省略時の設定では，DIFFERENCES コマンドは，各レコード内のすべての文字を比較します。

> - 違いの一覧に含まれる情報の書式を制御する修飾子

>   > /CHANGE_BAR
>   > /IGNORE
>   > /MERGED
>   > /MODE
>   > /PARALLEL
>   > /SEPARATED
>   > /SLP
>   > /WIDTH

>   省略時の設定では，比較するファイルに存在する違いがマージされます。 2つのファイルの一致しない各レコードがリストされてから，一致する次のレコードがリストされます。

>   省略時の設定では，リストされるレコードごとに行番号が示され，無視するように指定されたすべての文字を除去したレコードがリストされます。

>   修飾子を組み合せて指定すると，複数の書式で比較をリストする出力を要求できます。 SLP 出力は，他のすべての出力の種類とは互換性がないことに注意してください。パラレル出力を生成できるのは，ASCII モードだけです。

> - 比較の範囲を制御する修飾子

>   > /MATCH
>   > /MAXIMUM_DIFFERENCES
>   > /WINDOW

>   省略時の設定では，マスター入力ファイル内のすべてのレコードが読み込まれ，更新入力ファイル内の一致するレコードが探されます。 2つの入力ファイルの一致の検出は，一致が見つかるか， 2つのファイルの最後に到達するまで続きます。 2つのファイルのセクションが一致すると見なされるのは，各ファイルの連続した3つのレコードが同じと判定される場合だけです。

> 省略時の設定では，DIFFERENCES コマンドの出力は，現在の SYS$OUTPUT 装置に書き出されます。出力を別のファイルまたは装置に書き出すには，/OUTPUT 修飾子を使用します。

> DIFFERENCES コマンドは，終了状態で終了します。比較の結果は，次の重大度で示されます。

> SUCCESS | ファイルは同じです。
> INFORMATIONAL | ファイルは異なります。
> WARNING | DIFFERENCESの利用者指定最大数を超えました。
> ERROR | 仮想メモリの不足のため，比較を完了できません。

> SUCCESS 以外のすべての重大度は，2つの入力ファイルが異なることを表します。

## 修飾子

> ### /CHANGE_BAR[=([変更バー文字][,[NO]NUMBER])]

> 指定された文字を使用して違いをマークします。 /CHANGE_BAR 修飾子が表示する出力は， /CHANGE_BAR 修飾子を指定した位置により異なります。次の例では，/CHANGE_BAR 修飾子の位置による結果について説明します。

> 次の例では，前のバージョン input.file とは異なる行すべての先頭にシャープ記号 (#) の付いた最新のバージョンを表示します。

>     $ DIFFERENCES input.file/CHANGE_BAR=#

> 次の例では，input.file;1 と異なる行すべての先頭にシャープ記号 (#) の付いた input.file;2 を表示します。

>     $ DIFFERENCES input.file;1  input.file;2 /CHANGE_BAR=#

> 次の例では，input.file;2 と異なる行すべての先頭にシャープ記号 (#) を付けた input.file;1 を表示します。

>     $ DIFFERENCES input.file;1/CHANGE_BAR=#  input.file;2

> 次の例では，input.file;2 と異なる行すべての先頭にパーセント記号 (%) を付けた input.file;1 と， input.file;1 と異なる行すべての先頭にシャープ記号 (#) を付けた input.file;2 を表示します。

>     $ DIFFERENCES input.file;1/CHANGE_BAR=% input.file;2/CHANGE_BAR=#

> - 変更バー文字を指定しないと，ASCII 出力モードでは，省略時の設定の変更バー文字は感嘆符 (!) です。

> - 16 進出力モードおよび8進出力モード(詳細は /MODE 修飾子を参照)では，変更バー文字は無視されます。そのかわりにレコードの見出しに「***CHANGE***」という文字列が表示されます。キーワード NONUMBER を指定すると，リストに行番号は表示されません。

> - NUMBER または NONUMBER の指定により，変更バー・リストに行番号を付けるかどうかを制御できます。どちらも指定しない場合には，省略時の値は/[NO]NUMBER コマンド修飾子により決まります。

> - オプションを1つだけ指定する場合，括弧は省略できます。

> - 変更バー文字として感嘆符 (!)を指定する場合には， /CHANGE_BAR=("!",NUMBER) のように，引用符で囲む必要があります。

> ### /COMMENT_DELIMITER[=(区切り文字[,...])]

> 指定されたコメント区切り文字より右の文字を無視します。

> 1 文字だけ指定する場合は，括弧は省略できます。引用符で囲んでいない小文字は，自動的に大文字に変換されます。英数字以外の文字 (たとえば ! や，)は，引用符で囲まなければなりません。複数文字のコメント文字は使用できません。文字自体，または次に示すキーワードのいずれか 1 つをタイプすることにより，最大 32 のコメント文字を指定できます。一意に認識できれば，キーワードは 2 文字までに短縮できます (1 文字だと，区切り文字であると認識されます)。

> キーワード | 文字
> --- | ---
> COLON | コロン (:)
> COMMA | コンマ (,)
> EXCLAMATION | 感嘆符 (!)
> FORM_FEED | フォーム・フィード
> LEFT | 左かぎかっこ ([)
> RIGHT | 右かぎかっこ (])
> SEMI_COLON | セミコロン (;)
> SLASH | スラッシュ (/)
> SPACE | スペース
> TAB | 水平タブ

> /COMMENT_DELIMITER修飾子を指定すると， /IGNORE=COMMENTS修飾子も暗黙に含まれます。

> ある文字の大文字と小文字のどちらも区切り文字として使用する場合には，その文字を２回指定し，１回は大文字で，もう１回は小文字で指定します。 /COMMENT_DELIMITER 修飾子にコメント文字もキーワードも指定しないと， DIFFERENCES コマンドはファイル・タイプにより省略時の設定のコメント文字を想定します。あるファイル・タイプ (.COB および .FOR) では，行の 1 桁目にある場合のみ，省略時の設定のコメント文字は有効な区切り文字とみなされます。

> ファイル・タイプと，省略時の設定のコメント文字を次の表に示します。

> ファイル・タイプ | 省略時の設定のコメント文字
> --- | ---
> .B2S, .B32, .BAS, .BLI | !
> .CBL, .CMD | ! and ;
> .COB | 1 桁目の * または /
> .COM, .COR | !
> .FOR | 任意の位置の ! ，および 1 桁目の C， D， c， d
> .HLP | !
> .MAC, .MAR | ;
> .R32, .REQ | !

> ### /EXACT

> /PAGE=SAVE および /SEARCH 修飾子とともに使用し，正確に一致する文字列検索を指定します。この場合，検索文字列は二重引用符 ("") で囲まなければなりません。

> /SEARCH 修飾子を指定せずに /EXACT 修飾子を指定した場合は， Find(E1) キーを押すと文字列検索が有効になります。

> ### /HIGHLIGHT[=キーワード]

> /PAGE=SAVE および /SEARCH 修飾子とともに指定し，一致した検索文字列の強調表示方法を指定します。一致した検索文字列があった場合は，行全体が強調されます。キーワードには BOLD，BLINK，REVERSE, および UNDERLINE を指定できます。省略時の設定は BOLD です。

> ### /IGNORE=(オプション[,...])

> 比較するときに，指定した文字，文字列，またはレコードを無視することを指定します。 /IGNORE 修飾子は，比較レコードが入力ファイルに記憶されている形と同じようにリスト・ファイルに出力されるのか，指定した文字を無視して編集されたレコードとして出力されるのかも制御します。キーワードを 1 つだけ指定する場合は，括弧は省略できます。キーワード・パラメータは，文字またはキーワードを参照します。最初のキーワードは，(無視する文字があれば) 比較の際に無視する文字を決め， 2 番目のキーワードは無視した文字を出力に含めるかどうかを決めます。 /IGNORE 修飾子のオプションとして指定できるキーワードを次に示します。

> キーワード | 無視される項目
> --- | ---
> BLANK_LINES | データ間のブランク行
> CASE | 比較されるテキストの大文字小文字
> COMMENTS | コメント区切り文字の後に続くデータ（/COMMENT_DELIMITER 修飾子を使用して，１つまたは複数のコメント区切り文字を指定します）。
> FORM_FEEDS | フォーム・フィード文字
> HEADER[=n] | 最初の文字がフォーム・フィードであるレコードから順に，最初の n レコード（そのレコードに含まれる文字がフォーム・フィードだけの場合には，最初のレコードは無視されません）。 n の省略時の値は2です。
> SPACING | データ行の内部に含まれる複数のスペース，またはタブ（連続するスペースまたはタブは１つのスペースに変更されます）。
> TRAILING_SPACES | データ行の最後のスペース文字およびタブ文字
> キーワード | 出力で無視される項目の状態
> EDITED | 無視された文字が，削除された状態で出力レコードが作成される。
> EXACT | 入力ファイルと正確に同じ状態で出力レコードが作成される。
> PRETTY | 出力レコードは，形式化される。

> 各データ行に対して，まず COMMENTS，FORM_FEEDS，HEADER，および SPACING がチェックされ，そのあと TRAILING_SPACES と BLANK_LINES がチェックされます。したがって，COMMENTS，TRAILING_SPACES，および BLANK_LINES を無視することを DIFFERENCES に指示すると，コメントのあとに続くいくつかのスペース，またはブランク行のレコードは，完全に無視されます。

> 省略時の設定では，DIFFERENCES コマンドは，各ファイルのすべての文字を比較し，すべての相違点を報告します。また，無視された文字をすべて削除した状態で，出力ファイルにレコードを出力します。

> /PARALLEL を指定すると，出力の形式化は常に実行されます。レコードの形式を選択するためには，/IGNORE 修飾子に対して，次のキーワードを定します。

> 文字 | 形式化された出力
> --- | ---
> タブ (Ctrl/I) | 1 個から 8 個のスペース
> Return (Ctrl/M) | <CR>
> ライン・フィード (Ctrl/J) | <LF>
> 垂直タブ (Ctrl/K) | <VT>
> フォーム・フィード (Ctrl/L) | <FF>
> 他のプリントされない文字 | . (period)

> ### /MATCH=サイズ

> 一致していることを解釈するために，必要なレコード数を指定します。省略時の設定では，DIFFERENCES は一致しないレコードを検出したあと，一致するレコードが3つ連続して検出されると，そのファイルは一致しているものとして処理を続けます。この省略時の値である3を変更するには，/MATCH 修飾子を使用します。

> DIFFERENCES が相違点を検出したあとで，誤った位置を「一致している」と解釈している場合は，/MATCH の値を大きくします。

> ### /MAXIMUM_DIFFERENCES=n

> 一致しないレコードが指定された数だけ検出されると， DIFFERENCES が終了することを指定します。

> 一致しないレコード総数は，異なる各セクションごとに異なるレコードの最大数を求め，それを加算することによって判断できます。

> DIFFERENCES は，指定した一致しないレコードの最大数に到達すると，その最大数に到達する前に検出したレコードだけを出力します。また1つのリスト形式だけを出力し，警告メッセージを表示します。

> 省略時の設定では，一致しないレコードの最大数は設定されていません (指定された入力ファイルに含まれるすべてのレコードが比較されます)。

> ### /MERGED[=n]

> 出力ファイルに相違点のマージされたリストが含まれることを要求します。 n の値は，一致しないレコードの各リストのあとで，出力される一致したレコード数を示します。この値は，一致サイズに等しい，あるいはそれより小さい値で 10 進数でなければなりません (/MATCH=サイズ修飾子を参照)。省略時の値では，DIFFERENCES コマンドは，一致しないレコードの各セットのあとで，一致した１つのレコードを含む，マージされた (相違点について2つのレコードが記録された) リストを作成します (/MERGED=1)。 /MERGED, /SEPAREATED および /PARALLEL のいずれも指定されない場合は，一致しないレコードの各セットのあとで，一致した１つのレコードを含む，マージされたリストを作成します

> 省略時の n の値を変更する場合や，他のタイプの出力と相違点についての 2つのレコードが記録されたリストを作成する場合には， /MERGED 修飾子を使用します。

> ### /MODE=(基数[,...])

> 出力リストの形式を指定します。次のキーワードを指定することにより， 1つまたは複数の基数モードによる出力を作成できます。 ASCII (省略時の設定)，HEXADECIMAL，OCTAL キーワード(１つまたは複数)は括弧で囲みます。これらのキーワードは，1文字または複数の文字に省略できます。

> 省略時の設定では，DIFFERENCES は出力を ASCII モードで作成します。複数の基数モードを指定する場合には，出力リストには，指定した各基数で，ファイルの比較が示されます。複数の基数モードを指定する場合には，各モードをコンマで区切らなければなりません。

> /PARALLEL 修飾子，または /SLP 修飾子を指定すると，それらの形式に対して，/MODE 修飾子は無視されます。

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

> ### /NONUMBER

> リストに含まれるレコードに，行番号を付けるかどうかを制御します。省略時の値では，行番号はリストに含まれます。

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

> 相違点を示した出力リストが書き込まれる，出力ファイルを指定します。 /OUTPUT 修飾子を省略する場合には，出力は現在の SYS$OUTPUT 装置に書き込まれます。 /OUTPUT 修飾子だけを使用しファイル推定を省略すると，出力は，第1ファイルと同じ名前のファイルに書き込まれます。この場合のファイル・タイプは DIF になります。ファイル指定に，ワイルドカード文字は使用できません。

> /OUTPUT を指定すると，『Compaq OpenVMS ユーザーズ・マニュアル』に説明されているような，出力ファイル指定に対して適用される，省略時の値を使用できます。省略時の出力ファイル・タイプは DIF です。

> ### /PAGE[=キーワード]

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

> 画面上の差分情報の表示を制御します。

> 次のキーワードを指定できます。

> CLEAR_SCREEN | ページ・モードで表示（毎回画面を消去する）
> SCROLL | スクロール・モードで表示（毎回画面を消去しない）
> SAVE[= n] | n ページ分の履歴を保持する（前ページに戻ること等が可能）

> /PAGE=SAVE 修飾子を使用すると，最大 5 画面 (最大 255 カラムまで) 分の履歴を保存できます。ページャ内では，次のキーを使って画面の移動などができます。

> キー・シーケンス | 意味
> --- | ---
> Up arrow key, Ctrl/B | 1 行スクロール・アップ
> Down arrow key | 1 行スクロール・ダウン
> Left arrow key | 1 カラム左シフト
> Right arrow key | 1 カラム右シフト
> Find (E1) | 文字列検索を起動
> Insert Here (E2) | 半画面右シフト
> Remove (E3) | 半画面左シフト
> Select (E4) | 80/132 カラム切り替え
> Prev Screen (E5) | 前ページに移動
> Next Screen (E6), Return, Enter, Space | 次ページに移動
> F10, Ctrl/Z | 終了(ユーティリティによっては異なることがあります)。
> Help (F15) | ヘルプ・テキストを表示
> Do (F16) | 最新(現在)の画面と(履歴内で)最古画面の切り替え
> Ctrl/W | 再表示

> /PAGE 修飾子は，/OUTPUT 修飾子と同時に指定できません。

> ### /PARALLEL[=n]

> 一致しないレコードのパラレル・リスト(横に並べた形式のリスト) を出力することを指定します。 n の値は，一致しないレコードの各リストのあとに出力される，一致したレコード数を示します。この値は 10 進正数であり，MATCH に指定されている値以下でなければなりません (/MATCH=サイズ修飾子を参照)。

> 省略時の設定では，DIFFERENCES コマンドは，一致しないレコードの各リストのあとに，一致したレコードを加えたリストを作成しません。また DIFFERENCES は，マージされた相違点のリストだけを作成します。

> ### /SEARCH="文字列"

> /PAGE=SAVE 修飾子とともに指定して，表示される情報内で検索したい文字列を指定します。スペース文字等を含む場合は，検索文字列は引用符で囲まなければなりません。

> 情報が表示されている時に Find(E1) キーを押すと，検索文字列を動的に変更することができます。この場合は，引用符は必要ありません。

> ### /SEPARATED[=MASTER，REVISION]

> 違いを含む指定したファイルから，レコードだけを順番にリストします。指定した最初の入力ファイルの違いをリストするには，キーワード MASTER を指定します。指定した 2 番目の入力ファイルの違いをリストするには，キーワード REVISION を指定します。

> 省略時の設定では，DIFFERENCES は，相違点のマージされたリストだけを作成します。

> ### /SLP

> DIFFERENCES が，SLP エディタへの入力に適した出力ファイルを作成することを指定します。 /SLP 修飾子を指定する場合には，/MERGED 修飾子，/PARALLEL 修飾子， /SEPARATED 修飾子および /CHANGE_BAR 修飾子という出力ファイル修飾子は指定できません。

> SLP 修飾子によって作成される出力ファイルは，第1入力ファイルを更新するために，SLP への入力として使用できます (第1入力ファイルを第2入力ファイルと一致するように変更できます)。

> /SLP だけを指定し，/OUTPUT 修飾子を指定しない場合には， DIFFERENCESは，第1入力ファイルと同じファイル名でファイル・タイプが DIF であるファイルに，出力ファイルを書き込みます。

> ### /WIDTH=n

> 出力リストの１行の幅を指定します。省略時の設定では出力は 132 文字の幅ですが，出力がターミナルに送られるときは例外です。この場合には，出力の幅は，ターミナルの行の幅によって制御されます。

> ターミナルの１行の幅を変更するには，SET TERMINAL コマンドを使用します。

> ### /WINDOW=サイズ

> 一致しないレコードのリストを作成し，第1入力ファイルの次のレコードに対して処理を継続する前に，検索するレコードの数を制御します。省略時の設定では，DIFFERENCES は，一致しないレコードをリストする前に，両方の入力ファイルの最後まで検索します。

> ウインドゥ・サイズは，相違セクションの最小サイズであり，これは DIFFERENCES コマンドが２つの入力ファイル間の同期を失う原因となります。

> ### /WRAP

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

> /PAGE=SAVE 修飾子とともに指定し，画面の幅を越える行をラップするかどうかを指定します。 /WRAP 修飾子を指定した場合は，はみだす部分は次の行にラップされます。

> /NOWRAP 修飾子を指定した場合は，はみだした部分は左右にスクロールしながら見ることができます。

##

### 例

#1
    $ DIFFERENCES EXAMPLE.TXT
    ************
    File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2
        1   DEMONSTRATION
        2   OF V7.3 DIFFERENCES
        3   UTILITY
    ******
    File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1
        1   DEMONSTRETION
        2   OF VMS DIFFERENCES
        3   UTILITY
    ************
    Number of difference sections found: 1
    Number of difference records found: 2
    DIFFERENCES/ IGNORE=()/MERGED=1-
           DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2-
           DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1

> この DIFFERENCES コマンドは，現在の省略時のディレクトリの EXAMPLE.TXT というファイルの，2つの最新バージョンの内容を比較します。 DIFFERENCES は，各レコードのすべての文字を比較し，その結果をターミナルに表示します。

#2
    $ DIFFERENCES/PARALLEL/WIDTH=80/COMMENT_DELIMITER="V" EXAMPLE.TXT
    -------------------------------------------------------------------------------
    File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2  |  File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1
    ------------------- 1 ------------------------------------- 1 -----------------
    DEMONSTRATION                          |  DEMONSTRETION
    -------------------------------------------------------------------------------
    Number of difference sections found: 1
    Number of difference records found: 1
    DIFFERENCES/IGNORE=(COMMENTS)/COMMENT_DELIMITER=("V")/WIDTH=80/PARALLEL-
           DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2-
           DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1

> 上記の例と同様にファイルを比較します。ただし，行の最初に "V" のつくすべての文字列は無視されます。また，違いのパラレル・リストを 80 桁で表示します。

#3
    $ DIFFERENCES/WIDTH=80/MODE=(HEX,ASCII) EXAMPLE.TXT/CHANGE_BAR
    ************
    File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2
        1 ! DEMONSTRATION
        2 ! OF V7.3 DIFFERENCES
        3   UTILITY
    ************
    ************
    File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2
    RECORD NUMBER 1 (00000001) LENGTH 14 (0000000E)  ***CHANGE***
         204E 4F495441 5254534E 4F4D4544 DEMONSTRATION .. 000000
    RECORD NUMBER 2 (00000002) LENGTH 19 (00000013)  ***CHANGE***
     4E455245 46464944 20302E33 5620464F OF V7.3 DIFFEREN 000000
                                  534543 CES............. 000010
    RECORD NUMBER 3 (00000003) LENGTH 7 (00000007)
                         595449 4C495455 UTILITY......... 000000
    ************
    Number of difference sections found: 1
    Number of difference records found: 2
    DIFFERENCES /WIDTH=80/MODE=(HEX,ASCII)
           DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2/CHANGE_BAR-
           DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1

> 例 1 と同様にファイルを比較します。ただし，違いを 16 進形式と ASCII 形式でリストします。また，省略時の設定の変更バーを出力で使用するよう指定しています。 16 進形式での省略時の設定の変更バーは，***CHANGE*** です。 ASCII 形式での省略時の設定の変更バーは，感嘆符です。

#4
    $ DIFFERENCES/OUTPUT BOSTON::DISK2:TEST.DAT OMAHA::DISK1:[PGM]TEST.DAT

> この DIFFERENCES コマンドは，遠隔ノードにある 2 つのファイルを比較し違いを表示します。第 1 ファイルは，遠隔ノード BOSTON にある TEST.DAT です。第 2 ファイルは，遠隔ノード OMAHA にある TEST.DAT です。出力ファイルは DISK1:[PGM]TEST.DIF です。

前へ | 次へ | 目次 | 索引