比較兩個檔案或一組檔案,並顯示它們之間的差異。
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 | 比較二進位模式中的兩個檔案位元組位元組,而且在找到不相符之後,不會嘗試重新同步處理檔案。 這是比較擴展名為下列檔案的預設模式:.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 將定位點轉換為空格。 默認行為是將索引標籤視為空格,並在每八個字元位置停止。 |
| /u | 比較檔案與 Unicode 文字檔。 |
| /w | 在比較期間壓縮空格元(也就是製表符和空格)。 如果一行包含許多連續的空格或定位點, 則 /w 會將這些字元視為單一空格。 與 /w 搭配使用時, fc 會忽略行首和結尾的空格。 |
/<nnnn> |
指定在不相符之後必須相符的連續行數,然後 fc 才會考慮重新同步化檔案。 如果檔案中的相符行數小於nnnn,fc會將相符行顯示為差異。 預設值為 2。 |
[<drive1>:][<path1>]<filename1> |
指定要比較之第一個檔案或檔案集的位置和名稱。 filename1 是必要的。 |
[<drive2>:][<path2>]<filename2> |
指定要比較的第二個檔案或檔案集的位置和名稱。 filename2 是必要的。 |
| /? | 在命令提示字元中顯示說明。 |
Exit codes
下表列出每個 fc.exe 結束代碼和描述。
| Exit code | Description |
|---|---|
| 0 | 檔案相同。 |
| 1 | 檔案不同。 |
| 2 | 比較期間發生錯誤。 |
Remarks
此命令是由 c:\WINDOWS\fc.exe實作。 您可以在 PowerShell 中使用此命令,但請務必拼出完整的可執行檔 (fc.exe),因為 'fc' 也是 Format-Custom 的別名。
當您使用 fc 進行 ASCII 比較時, fc 會依下列順序顯示兩個檔案之間的差異:
第一個檔案的名稱
檔案之間不同的 filename1 行
在這兩個檔案中相符的第一行
第二個檔案的名稱
檔案名稱2 中不同的行
要比對的第一行
/b 會以下列語法顯示二進位比較期間發現的不相符:
\<XXXXXXXX: YY ZZ>XXXXXXXX 的值指定字節組對的相對十六進位位址,從檔案開頭開始測量。 位址從 00000000 開始。 YY 和 ZZ 的十六進位值分別代表 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 進行 ASCII 比較,並以縮寫格式顯示結果,請輸入:
fc /a monthly.rpt sales.rpt
若要對兩個批次檔案 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