- FC コマンドを使用すると、Windows 内の 1 つ以上のファイルをテキスト、Unicode、またはバイナリ モードで比較し、それらの違いを正確に示すことができます。
- オプション (/A、/B、/C、/L、/U、/W、/LBn、/nnnn、/N、/OFFLINE、/T) により、不一致の解釈および表示方法が調整されます。
- FC は、変更を確認するためのスクリプトや自動化への統合を容易にする終了コード (0、1、または 2) を返します。
- ファイルのバッチを比較するためのパス、ドライブ、ワイルドカードをサポートしており、fc.exe を呼び出すことで CMD と PowerShell の両方で使用できます。
スクリプト、レポート、コードを扱う場合、または単にファイルが変更されているかどうかを確認したい場合は、コマンド Windows コンソール fc これは、ほとんど知られていない、目立たないながらも非常に便利なリソースの一つです。インストールや外部プログラムの使用は不要です。オペレーティングシステム自体に含まれており、コマンドプロンプトやPowerShellからすぐに使用できます。 PowerShell または CMD でテキストとファイルを比較する.
次の行に表示されます WindowsでFCコマンドを使用してファイルを比較する方法提供される比較モード(ASCII、Unicode、バイナリ)、Microsoft公式構文における各パラメータの意味、出力コードの解釈方法、そして日常的な使用に役立つ実用的な例をいくつか網羅しています。重要な技術的詳細を省略することなく、すべてが明確な言葉で段階的に説明されています。
FC コマンドとは何ですか? また、何に使用されますか?
コマンド FC (ファイル比較) これは、2つのファイルまたは2つのファイルセットの内容を比較し、それらの差異を表示するためのWindowsコマンドラインツールです。Windows 10、Windows 11、以前のバージョン、およびサーバーエディションと互換性があります。 Windows Server 2019、2022以降.
FCを実行すると、システムは両方のファイルを分析し、 それらは同一でしょうか、異なるでしょうか、そしてどのような点で異なるのでしょうか?選択したオプションに応じて、テキストレベル(行ごと)、Unicodeテキスト、またはバイナリレベル(バイトごと)で動作できるため、プレーンテキストファイル(メモ帳でファイルを比較する) など、実行可能ファイル、イメージ、その他のバイナリ形式などです。
さらに、FCではいくつかのオプションを使って比較の種類を絞り込むことができます。 大文字と小文字を無視し、空白を無視し、行番号を表示します内部バッファが処理できる連続した差分の数を制限したり、オフラインとしてマークされたファイルを比較したりといったことが可能です。見た目よりもはるかに柔軟性に優れています。
PowerShellから呼び出すことはできますが、この環境では fcはFormat-Customコマンドレットのエイリアスです。したがって、従来のファイル比較ツールを使用する場合は、明示的に入力する必要があります。 fc.exe fcだけではなく、正しいバイナリが C:\WINDOWS\fc.exe.
FCコマンドの完全な構文
Microsoft Windows ヘルプによると、コマンドの公式構文には主に 2 つの使用モードが含まれます。 テキスト比較(ASCII または Unicode) y バイナリ比較一般的な形式は次のとおりです。
fc /a ] <archivo1> <archivo2>
fc /b <archivo1> <archivo2>
実際には、これは次のことを意味します 1つ以上の修飾子を追加する FCの動作を調整するために、ファイル名の前にパスとドライブのパラメータを付けます。パスとドライブのパラメータはオプションなので、現在のディレクトリにある場合はファイル名のみを指定します。そうでない場合は、パスまたはドライブも指定する必要があります。
実行時に表示されるクラシックヘルプ fc /? スペイン語のコマンド プロンプトでは、構文は次のようにまとめられます (理解しやすいようにフォーマットされています)。
FC ]
archivo1 archivo2
FC /B archivo1 archivo2
これらすべてのバリエーションにおいて、 file1 y file2 これらは比較対象となる最初のファイルと2番目のファイル(またはファイルパターン)を表します。ワイルドカード文字もサポートされているため、1つのコマンドでファイルグループ全体を比較できます。
FCコマンドの各パラメータの意味
各オプションの機能を確認すると、コマンドの真の可能性が明らかになります。以下で詳細を説明します。 fc.exe によって認識されるすべてのパラメータ これらは、Microsoft のドキュメントおよび組み込みヘルプに記載されているとおりです。
比較モード
/A – ASCIIテキスト比較の簡易出力モードを有効にします。2つのファイル間で異なる行をすべてリストする代わりに、FCは以下を表示します。 各相違点のグループの最初の行と最後の行これは、変更のブロックが大きく、コンソールが無限のテキストで埋め尽くされることを避けたい場合に非常に便利です。
/B – フォースワン バイトごとのバイナリ比較このモードでは、不一致が見つかった後、データストリームの再同期は行われず、検出された差異をそのまま表示します。これは、.exe、.com、.sys、.obj、.lib、.bin などのバイナリ拡張子を持つファイルの場合、/B スイッチを明示的に指定していない場合でも、デフォルトのモードです。
/L – FCに実行を指示する ASCII行ごとの比較差異を検出した後、常にファイルの再同期を試みます。これは、バイナリファイルではないファイル(つまり、前述の実行可能ファイルや類似の拡張子を持たないファイル)のデフォルトモードです。
/U – fcの動作を変更して、ファイルを Unicodeテキストファイルこのオプションにより、特定のエンコード (UTF-16 など) が尊重され、基本 ASCII を超える文字が正しく解釈されるようになります。
大文字、スペース、タブの制御
/C – コマンドは、 大文字と小文字大文字と小文字のみが異なる場合(例:「Hola」と「HOLA」)、行は同等とみなされ、異なる行としてマークされません。これは文字には適用されますが、他の文字には適用されないことに注意してください。
/W – 重要性を圧縮し最小限に抑える 余白つまり、タブとスペースです。行内に連続したスペースやタブが長く続く場合、FCはそれらを1つのスペースとして扱います。また、/Wを使用すると、コマンドはそれらを無視します。 最初と最後のスペース これは、比較中に各行のインデントが重要でないスクリプトやテキストに最適です。
/T – タブからスペースへの自動変換を無効にします。デフォルトでは、FCは通常タブをスペースとして扱い、8文字ごとに改行しますが、/T 表はそのまま尊重されますこれは、正確な配置が意味のあるコンテンツの一部である場合に便利です。
内部バッファ管理と同期
/ポンド – サイズを調整する 内部ラインバッファ FCがテキストファイルを比較する際に使用するバッファです。デフォルトでは、このバッファは最大100行の連続した行を処理できます。比較する2つのファイルに100行以上連続して一致しない場合、プログラムはファイルの移動距離が離れすぎていると判断するため、 比較を中断するこのパラメータを使用すると、100 行ではなく特定の行数を指定して、制限を上げたり下げたりすることができます。
/ – 数を指定する 連続する行は一致する必要があります 不一致が発生した場合、FCは両方のファイルの再同期に成功したとみなします。デフォルト値は2です。差異ブロックの後にnnnn行未満の連続する同一行が見つかった場合、プログラムはファイルが不整合のままであると想定するため、それらの行も差異の一部として表示されます。
オフライン表示とアーカイブオプション
/N – それは 行番号 ASCII 比較を実行すると、各ファイルの内容とともに実際の行参照が表示されます。これは、後で問題のファイルを手動で編集する必要がある場合に重要です。
/オフ – デフォルトでは、FCは「オフライン」属性が設定されているファイルをスキップします。このオプションは、プログラムに オフラインとしてマークされたファイルも比較しますこれは、データがリモートの場所や特殊なファイルシステムに保存される環境で役立ちます。
ファイルの仕様とクイックヘルプ
上記のオプションに加えて、コマンドラインでファイルを指定する方法を理解することも重要です。構文の以下の部分は file1 y file2 定義する 1番目と2番目のファイル FCが比較するパス。フルパス、相対パス、そして必要に応じて異なるドライブ文字を使用できます。
このコマンドはワイルドカード文字もサポートしています。 * y ?file1にアスタリスクまたは疑問符を含めると、FCはそのパターンに一致するすべてのファイルをfile2で指定されたファイルまたはパターンと比較します。また、file2にワイルドカードを使用すると、ツールは 同等のファイル名1 残りのパターンを完成させ、比較するペアを確立します。
最後に、修飾語 /? これは比較の一部ではなく、むしろ コマンドの組み込みヘルプを表示する コマンドプロンプトで実行します。 fc /? これは、常に Windows インストールの言語で、自分のコンピューター上で構文を確認する最も速い方法です。
FCがファイル間の差異を表示する方法
FC が提供する出力形式は、実行内容に応じて若干異なります。 ASCII/Unicodeテキスト比較 または バイナリ比較この形式を理解することで、結果をより早く読み取り、必要な情報を見つけるのに役立ちます。
標準的なASCII比較では、コマンドを実行した後、FCは通常、最初の 最初のファイルの名前の後に、そのファイルから2番目のファイルと異なる行が続きます。その後に、 再び一致する最初の行 両方のファイルで、再同期ポイントとして機能します。次に、2番目のファイルでも同じ構造が繰り返されます。つまり、ファイル名、異なる行、そして最初の一致する行です。
バイナリモードを有効にすると、 /Bしかし、状況は変化します。それぞれの矛盾は次のような構文で表現されます。 \<XXXXXXXX: YY ZZ>値 XXXXXXXX これは、異なるバイトペアが見つかった位置を示す相対的な16進アドレス(00000000から始まる)です。その横には、 YY y ZZこれらはそれぞれ、file1 と file2 に属する一致しないバイトの 16 進値です。
バイナリ比較が一方のファイルの終わりに達し、もう一方のファイルにまだデータが含まれている場合、FCは次のことを示します。 ファイルの1つがもう1つよりも長いただし、すべてのコンテンツを分析した後でも違いが検出されない場合は、次のようなメッセージが画面に表示されます。 FC: no differences encountered、またはそのローカライズされた同等のファイルを使用することで、両方のファイルが同一であることが明確になります。
ASCIIモードでは、FCは 100行の内部バッファ (/LBn で変更しない限り)ブロック単位で読み取りと照合を行います。ファイルが大きく異なるため、そのブロック内で一致するものが見つからない場合は、「再同期に失敗しました。ファイルが違いすぎます。」というメッセージが表示され、2つのテキストシーケンスを適切に再調整できなかったことが示されます。
FCコマンドの終了コード
画面に表示されるテキストの他に、実行ファイルは fc.exeは終了コードを返します 完了時にオペレーティングシステムに渡します。このコードは、バッチスクリプトや自動化でFCを使用する場合に非常に重要です。返されたテキストを手動で分析することなく、比較結果に基づいて判断を下すことができるためです。
終了コード テーブルは非常にシンプルで一定です。
- 0 – 比較対象のファイルは 同一の内容に違いは見つかりませんでした。
- 1 – ファイルは 違うfile1 と file2 の間には少なくとも 1 つの不一致があります。
- 2 – A 比較中にエラーが発生しました権限、アクセスできないファイル、読み取りの問題、または無効なパラメータに関連している可能性があります。
変更を検証したいバッチファイルでは、これらのコードを次のようなコマンドで使用できます。 エラーレベルの場合 または同様の構造を使用して、ファイルが一致するかどうかに応じてスクリプトが何らかの方法で動作するようにします。
FC活用の実例
理論を理解したら、最も役立つのは 実行できる特定のコマンド これらの例は、Windowsでの日常的なファイル比較で使用されています。公式ドキュメントとWindowsヘルプに基づいています。
2つのテキストファイルをASCIIモードで比較する
2つのレポートがあるとします。 月次.rpt y 販売報告書画面に線を多用せずに、違いを確認したいとします。次のような例が考えられます。
fc /a monthly.rpt sales.rpt
/Aオプションを使用すると、FCは以下のみを表示します。 各差異ブロックの最初と最後の行これにより、変更が広範囲にわたる場合でも、結果がはるかに読みやすくなります。
バイナリファイル(例:バッチスクリプト)を比較する
2つのバッチファイルでバイトレベルの変更をチェックしたい場合、例えば 利益.bat y 収益.bat理想的には、バイナリ モードを使用します。
fc /b profits.bat earnings.bat
相違点がある場合は、異なる16進アドレスとバイトペアを持つ複数の行が表示されます。一方、2つのファイルが100%一致する場合、FCは次のメッセージを返します。 違いは見つかりませんでした 比較中。
すべての .bat ファイルを参照ファイルと比較する
複数のファイルを、テンプレートとして機能する新しいバージョンと一度に比較すると便利な場合があります。例えば、現在のディレクトリにある各.batファイルを、 新しい.bat次のコマンドを使用できます:
fc *.bat new.bat
FC は、パターンに一致する現在のディレクトリ内のすべての .bat ファイルを調べ、それらを 1 つずつ新しい .bat ファイルと比較し、各ペアの違いを表示します。
異なるドライブ上の同じ名前のファイルを比較する
もう一つのよくある状況は、例えばバックアップを検証する場合など、CドライブとDドライブのファイルが一致するかどうかを確認することです。Cドライブのルートディレクトリにあるすべての.batファイルとDドライブにある対応するファイルを比較するには、次のように入力します。
fc c:\*.bat d:\*.bat
この場合、FCはC:ルートにある各バッチファイルを、そのファイルと比較します。 Dのルートに同じ名前があります:特定のファイルのみを比較したい場合は、ワイルドカード *.bat の代わりに名前を指定するだけです。
Windows コンソールと PowerShell で FC を使用する
古典的なWindowsコマンドコンソールは、 CMDFCコマンドを活用するための理想的な環境を提供しますが、PowerShellからも若干の違いはありますが使用できます。CMDでは、ウィンドウを開くだけです(例えば、 CMD スタート メニューで) をクリックし、前の例とまったく同じようにコマンドを実行します。
PowerShellでは、すでに述べたように、 fcはFormat-Customコマンドレットのエイリアスです。競合を避け、Windowsの従来のファイル比較ツールを確実に使用するには、次のように入力する必要があります。 fc.exe 単に fcその時点から、パラメータ構文は CMD と同じままになります。
多くのユーザーは、FCを他の一般的なコンソールコマンドと組み合わせて使用します。 CD (フォルダを変更する) DIR (ディレクトリの内容を一覧表示する) TREE (サブフォルダツリーを表示するには)、 MOVE o RENAME (ファイルの移動や名前の変更用)、および次のようなユーティリティ FIND 1 つ以上のファイル内のテキスト文字列を検索します。
FCを、バックアップ、ディレクトリの同期、構成ファイルの検証など、より複雑なスクリプトに統合することは完全に可能です。 変更されていない 元のテンプレートに関しては、終了コードと特定の比較オプションの両方を活用します。
簡略化されたFC使用法のバリエーションとよく使用されるオプション
一部のトレーニング教材や授業ノートには、構文の簡略版が掲載されていることが多く、最も頻繁に使用されるオプションのみが強調表示されています。例えば、非常によく使われる略語は次のとおりです。
fc archivo1 archivo2
この表現では、/bは バイナリ比較省略した場合、比較はテキスト形式(デフォルトはASCII、/Uが指定されている場合はUnicode)とみなされます。File1とfile2は、比較するファイル名のままです。
多くの要約では、以下のオプションもキーとして挙げられています: /b (バイト単位の比較)、/l (行単位の比較)、/c (大文字と小文字を区別しない比較)、/s (比較) 再帰的にサブディレクトリ/s オプションは Windows の公式 FC 構文の一部ではないことを明確にする必要があります (通常は他のコマンドに属します)。ただし、一般的なファイル比較スキームや、異なるコマンドが混在するメモで引用されることがあります。
いずれにせよ、常に組み込みのヘルプを使用して fc /? 公式ドキュメントでは、 お使いのWindowsのバージョンに応じた正しいパラメータのリスト他のコマンドのオプションと FC のオプションを混同することなく。
上記の情報をすべて考慮すると、FC コマンドは、Windows 内のファイル間の変更を確認する必要があるすべての人にとって、驚くほど完全なツールであることがわかります。このコマンドを使用すると、テキスト、Unicode、またはバイナリ モードでの比較、スペース、大文字、タブの処理方法の調整、オフラインでのファイルの管理、バッファーと再同期の制御、スクリプト内の終了コードの解釈、ファイルのバッチ全体のパターンとワイルドカードの操作など、すべて外部アプリケーションに頼ることなく、オペレーティング システム自体に統合されたユーティリティを利用して行うことができます。
バイトの世界とテクノロジー全般についての情熱的なライター。私は執筆を通じて自分の知識を共有するのが大好きです。このブログでは、ガジェット、ソフトウェア、ハードウェア、技術トレンドなどについて最も興味深いことをすべて紹介します。私の目標は、シンプルで楽しい方法でデジタル世界をナビゲートできるよう支援することです。


