2 つのファイルまたはファイル セットを比較し、それらの違いを表示します。
Syntax
fc /a [/c] [/l] [/lb<n>] [/n] [/off[line]] [/t] [/u] [/w] [/<nnnn>] [<drive1>:][<path1>]<filename1> [<drive2>:][<path2>]<filename2>
fc /b [<drive1:>][<path1>]<filename1> [<drive2:>][<path2>]<filename2>
Parameters
| Parameter | Description |
|---|---|
| /a | ASCII 比較の出力を省略します。 fc では、異なるすべての行を表示するのではなく、相違点のセットごとに最初と最後の行のみが表示されます。 |
| /b | バイナリ モードの 2 つのファイルをバイト単位で比較し、不一致を見つけた後にファイルの再同期を試みません。 これは、.exe、.com、.sys、.obj、.lib、または.binのファイル拡張子を持つファイルを比較するための既定のモードです。 |
| /c | 文字の大文字と小文字を無視します。 |
| /l | ASCII モードのファイルを 1 行ずつ比較し、不一致を見つけた後にファイルの再同期を試みます。 これは、ファイル拡張子が .exe、.com、.sys、.obj、.lib、または .bin を持つファイルを除く、ファイルを比較するための既定のモードです。 |
/lb<n> |
内部行バッファの行数を N に設定します。行バッファーのデフォルトの長さは 100 行です。 比較するファイルに 100 行を超える連続した異なる行がある場合、 fc は比較をキャンセルします。 |
| /n | ASCII 比較中の行番号を表示します。 |
| /off[line] | オフライン属性が設定されているファイルはスキップしません。 |
| /t | fc がタブをスペースに変換できないようにします。 既定の動作では、タブをスペースとして扱い、各 8 文字目の位置で停止します。 |
| /u | ファイルを Unicode テキスト ファイルとして比較します。 |
| /w | 比較中に空白 (つまり、タブとスペース) を圧縮します。 行に多数の連続したスペースまたはタブが含まれている場合、 /w はこれらの文字を 1 つのスペースとして扱います。 /w と一緒に使用すると、fc は行の先頭と末尾の空白を無視します。 |
/<nnnn> |
fc がファイルを再同期すると見なす前に、不一致後に一致する必要がある連続行数を指定します。 ファイル内の一致する行の数が nnnn より少ない場合、 fc は一致する行を差分として表示します。 既定値は 2 です。 |
[<drive1>:][<path1>]<filename1> |
比較する最初のファイルまたは一連のファイルの場所と名前を指定します。 filename1 は必須です。 |
[<drive2>:][<path2>]<filename2> |
比較する 2 番目のファイルまたは一連のファイルの場所と名前を指定します。 filename2 は必須です。 |
| /? | コマンド プロンプトにヘルプを表示します。 |
Exit codes
次の表に、各 fc.exe 終了コードと説明を示します。
| Exit code | Description |
|---|---|
| 0 | ファイルは同じです。 |
| 1 | ファイルは異なります。 |
| 2 | 比較中にエラーが発生しました。 |
Remarks
このコマンドは c:\WINDOWS\fc.exeによって実装されます。 このコマンドは PowerShell 内で使用できますが、'fc' は Format-Custom のエイリアスでもあるため、完全な実行可能ファイル (fc.exe) を必ず入力してください。
ASCII 比較に fc を使用すると、 fc は 2 つのファイル間の相違点を次の順序で表示します。
最初のファイルの名前
ファイル間で異なるファイル名 1 の行
両方のファイルで一致する最初の行
2 番目のファイルの名前
filename2 の異なる行
一致する最初の行
/b は、バイナリ比較中に見つかった不一致を次の構文で表示します。
\<XXXXXXXX: YY ZZ>XXXXXXXX の値は、ファイルの先頭から測定されたバイトのペアの相対 16 進数アドレスを指定します。 アドレスは 000000000 から始まります。 YY と ZZ の 16 進値は、それぞれ filename1 と filename2 の不一致のバイトを表します。
filename1 と filename2 にはワイルドカード文字 (* と ?) を使用できます。 filename1 にワイルドカードを使用すると、fc は指定されたすべてのファイルを、filename2 で指定されたファイルまたはファイルのセットと比較します。 filename2 でワイルドカードを使用すると、fc は filename1 の対応する値を使用します。
ASCII ファイルを比較する場合、 fc は内部バッファ (100 行を保持できる十分な大きさ) をストレージとして使用します。 ファイルがバッファよりも大きい場合、 fc はバッファにロードできる内容を比較します。 fc がファイルのロードされた部分に一致するものを見つけられない場合は、停止し、次のメッセージを表示します。
Resynch failed. Files are too different.使用可能なメモリよりも大きいバイナリ ファイルを比較する場合、 fc は両方のファイルを完全に比較し、メモリ内の部分をディスクの次の部分と重ね合わせます。 出力は、メモリに完全に収まるファイルの場合と同じです。
Examples
monthly.rpt と sales.rpt の 2 つのテキスト ファイルを ASCII で比較し、結果を省略形式で表示するには、次のように入力します。
fc /a monthly.rpt sales.rpt
2 つのバッチ ファイル ( profits.bat と earnings.bat) のバイナリ比較を行うには、次のように入力します。
fc /b profits.bat earnings.bat
次のような結果が表示されます。
00000002: 72 43
00000004: 65 3A
0000000E: 56 92
000005E8: 00 6E
FC: earnings.bat longer than profits.bat
profits.bat ファイルと earnings.bat ファイルが同一の場合、 fc は次のメッセージを表示します。
Comparing files profits.bat and earnings.bat
FC: no differences encountered
現在のディレクトリ内のすべての .bat ファイルをファイル new.batと比較するには、次のように入力します。
fc *.bat new.bat
ドライブ C のファイル new.bat とドライブ D のファイル new.bat を比較するには、次のように入力します。
fc c:new.bat d:*.bat
ドライブ C のルート ディレクトリ内の各バッチ ファイルを、ドライブ D のルート ディレクトリ内の同じ名前のファイルと比較するには、次のように入力します。
fc c:*.bat d:*.bat