fc

2 つのファイルまたはファイルのセットを比較し、その違いを表示します。

構文

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>

パラメーター

パラメーター 説明
/a ASCII 比較の出力を省略します。 fc により、相違のあるすべての行を表示するのではなく、相違の各セットの最初と最後の行のみを表示します。
/b バイナリ モードで 2 つのファイルをバイトごとに比較し、不一致が見つかってもファイルの再同期を試みません。 これは、.exe、.com、.sys、.obj、.lib、または .bin というファイル拡張子を持つファイルを比較する場合の既定のモードです。
/c 文字の大文字と小文字を区別しません。
/l ASCII モードでファイルを行ごとに比較し、不一致が見つかった場合はファイルの再同期を試みます。 これは、ファイル拡張子が .exe、.com、.sys、.obj、.lib、.bin 以外のファイルを比較する場合の既定のモードです。
/lb<n> 内部行バッファーの行数を N に設定します。行バッファーの既定の長さは 100 行です。 比較するファイルに、連続して 100 行を超える行に相違がある場合、fc の比較処理は取り消されます。
/n ASCII の比較時に行番号を表示します。
/off[line] オフライン属性が設定されているファイルはスキップしません。
/t タブをスペースに変換する fc の処理を防ぎます。 既定の動作は、タブをスペースとして扱い、8 文字目の位置ごとに停止します。
/U ファイルを Unicode テキスト ファイルとして比較します。
/w 比較時に空白 (つまり、タブとスペース) を圧縮します。 1 行に連続した多数のスペースまたはタブが含まれている場合、/w を指定すると、これらの文字が 1 つのスペースとして扱われます。 /w を指定して fc を使うと、行頭と行末の空白は無視されます。
/<nnnn> fc でファイルの再同期を検討する前に、不一致の後に一致する必要がある連続した行数を指定します。 ファイル内の一致する行数が nnnn 未満の場合、fc によって、一致する行が相違として表示されます。 既定値は 2 です。
[<drive1>:][<path1>]<filename1> 比較する 1 つ目のファイルまたはファイルのセットの場所と名前を指定します。 filename1 は必須です。
[<drive2>:][<path2>]<filename2> 比較する 2 つ目のファイルまたはファイルのセットの場所と名前を指定します。 filename2 は必須です。
/? コマンド プロンプトにヘルプを表示します。

解説

  • このコマンドは、c:\WINDOWS\fc.exe に実装されています。 このコマンドを PowerShell 内で使うことができます。ただし、'fc' は Format-Custom の別名でもあるので、必ず完全な実行可能ファイル (fc.exe) を入力してください。

  • ASCII 比較に fc を使うと、fc によって 2 つのファイルの相違が次の順序で表示されます。

    • 最初のファイルの名前

    • ファイル間で異なる filename1 の行。

    • 両方のファイルで一致する最初の行

    • 2 つ目のファイルの名前

    • 異なる filename2 の行

    • 一致する最初の行

  • /b を指定すると、バイナリ比較で見つかった不一致が次の構文で表示されます。

    \<XXXXXXXX: YY ZZ>

    XXXXXXXX の値は、ファイルの先頭から測定したバイトのペアの相対的な 16 進アドレスを示します。 アドレスは 00000000 から始まります。 YYZZ の 16 進値は、それぞれ filename1filename2 の不一致バイトを表します。

  • filename1filename2 にはワイルドカード文字 (*?) を使用できます。 filename1 にワイルドカードを使った場合、fc によって、指定したすべてのファイルと、filename2 に指定したファイルまたはファイル セットが比較されます。 filename2 にワイルドカードを使った場合、fc によって、filename1 の対応する値が使われます。

  • ASCII ファイルを比較する場合、fc には内部バッファー (100 行を格納できる大きさ) がストレージとして使われます。 ファイルがバッファーよりも大きい場合、fc によって、バッファーに読み込むことができるものが比較されます。 fc で、読み込んだファイルの部分に一致するものが見つからなかった場合は停止され、次のメッセージが表示されます。

    Resynch failed. Files are too different.

    使用できるメモリよりも大きいバイナリ ファイルを比較する場合、fc によって両方のファイルが完全に比較され、メモリ内の部分とディスクの次の部分がオーバーレイされます。 出力は、メモリに完全に収まるファイルの場合と同じです。

monthly.rptsales.rpt の 2 つのテキスト ファイルの ASCII 比較を実行し、その結果を省略して表示するには、次のように入力します。

fc /a monthly.rpt sales.rpt

profits.batearnings.bat の 2 つのバッチ ファイルのバイナリ比較を実行するには、次のように入力します。

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