Lệnh fc trong Windows

Lệnh fc so sánh hai file hoặc tập hợp các file và hiển thị sự khác biệt giữa chúng. Để biết ví dụ về cách sử dụng lệnh này, vui lòng xem phần ví dụ bên dưới.

Cú pháp lệnh fc

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>

Tham số

Tham số Mô tả
/a Viết tắt đầu ra của việc so sánh ASCII. Thay vì hiển thị tất cả các dòng khác biệt, lệnh fc chỉ hiển thị dòng đầu tiên và cuối cùng cho mỗi set khác biệt.
/b So sánh hai file ở chế độ nhị phân, từng byte một và không cố gắng đồng bộ hóa lại các file sau khi tìm thấy bất kỳ sự khác biệt nào. Các file có phần mở rộng sau sẽ được so sánh theo mặc định: .exe, .com, .sys, .obj, .lib, or .bin.
/c Bỏ qua việc chữ cái được viết hoa hay viết thường.
/l So sánh các file ở chế độ ASCII, từng dòng một và cố gắng đồng bộ hóa các file sau khi tìm thấy sự khác biệt. Đây là chế độ mặc định để so sánh các file, ngoại trừ các file có phần mở rộng như sau: .exe, .com, .sys, .obj, .lib, or .bin.
/lb<N> Đặt số dòng cho buffet dòng bên trong là N. Độ dài mặc định của buffet thường là 100 dòng. Nếu các file mà bạn đang so sánh có hơn 100 dòng khác nhau liên tiếp, thì thì lệnh fc sẽ hủy so sánh.
/n Hiển thị số dòng trong khi so sánh ASCII.
/off[line] Không bỏ qua các file có thuộc tính ngoại tuyến được đặt.
/t Ngăn lệnh fc chuyển đổi tab thành dấu cách. Hành vi mặc định là xử lý các tab dưới dạng dấu cách, với các điểm dừng tại vị trí ký tự thứ tám.
/u So sánh các file dưới dạng file văn bản Unicode.
/w Nén khoảng trắng (nghĩa là các tab và dấu cách) trong khi so sánh. Nếu một dòng chứa nhiều dấu cách hoặc tab liên tiếp, /w coi các ký tự này là một dấu cách. Khi được sử dụng với /w, lệnh fc bỏ qua khoảng trắng ở đầu và cuối của một dòng.
/<NNNN> Chỉ định số lượng các dòng liên tiếp phải khớp với sự không phù hợp sau đây, trước khi lệnh fc xem xét các file sẽ được đồng bộ lại. Nếu số lượng các dòng khớp trong các file nhỏ hơn NNNN, lệnh fc sẽ hiển thị các dòng phù hợp dưới dạng sự khác biệt. Giá trị mặc định là 2.
[<Drive1>:][] Chỉ định vị trí và tên của file đầu tiên hoặc tập hợp các file để so sánh. FileName1 là bắt buộc.
[<Drive2>:][] Chỉ định vị trí và tên của file thứ hai hoặc tập hợp các file để so sánh. FileName2 là bắt buộc.
/? Hiển thị trợ giúp tại dấu nhắc lệnh.

Lưu ý

  • Lệnh này được thực hiện bởi c:\WINDOWS\fc.exe. Bạn có thể sử dụng lệnh này trong PowerShell, nhưng hãy chắc chắn viết đầy đủ tên file thực thi (fc.exe) vì 'fc' là từ viết tắt cho Format-Custom.
  • Báo cáo sự khác biệt giữa các file cho so sánh ASCII: Khi bạn sử dụng lệnh fc để so sánh ASCII, fc hiển thị sự khác biệt giữa hai file theo thứ tự sau:
    • Tên của file đầu tiên
    • Các dòng khác nhau giữa các file từ FileName1
    • Dòng đầu tiên khớp với cả hai file
    • Tên của file thứ hai
    • Các dòng khác nhau giữa các file từ FileName2
    • Dòng đầu tiên khớp
  • Sử dụng /b để so sánh nhị phân

/b hiển thị các sự khác biệt được tìm thấy trong khi so sánh nhị phân theo cú pháp sau:

\<XXXXXXXX: YY ZZ>

Giá trị của XXXXXXXX chỉ định địa chỉ thập lục phân tương đối cho cặp byte, được tính từ đầu file. Địa chỉ bắt đầu tại 00000000. Các giá trị hệ thập lục phân cho YY và ZZ đại diện cho các byte không khớp từ FileName1FileName2, tương ứng.

  • Sử dụng ký tự đại diện

Bạn có thể sử dụng ký tự đại diện (*?) trong FileName1FileName2. Nếu bạn sử dụng một ký tự đại diện trong FileName1, fc so sánh tất cả các file được chỉ định với file hoặc tập hợp các file được chỉ định bởi FileName2. Nếu bạn sử dụng một ký tự đại diện trong FileName2, fc sử dụng giá trị tương ứng từ FileName1.

  • Làm việc với bộ nhớ

Khi so sánh các file ASCII, fc sử dụng buffet trong (đủ lớn để giữ tối đa 100 dòng) làm bộ nhớ. Nếu các file lớn hơn buffet, fc sẽ so sánh những gì nó có thể load vào buffet. Nếu fc không tìm thấy kết quả phù hợp trong các phần được load của các file, nó sẽ dừng và hiển thị thông báo sau:

Resynch failed. Files are too different.

Khi so sánh các file nhị phân lớn hơn bộ nhớ có sẵn, fc so sánh cả hai file một cách hoàn toàn, chồng các phần trong bộ nhớ lên các phần tiếp theo từ ổ đĩa. Đầu ra cũng giống như đầu ra cho các file phù hợp hoàn toàn trong bộ nhớ.

Ví dụ

Để so sánh ASCII của hai file văn bản, Monthly.rptSales.rpt, và hiển thị kết quả theo định dạng viết tắt, hãy nhập:

fc /a monthly.rpt sales.rpt

Để so sánh nhị phân hai file batch, Profits.batEarnings.bat, hãy nhập:

fc /b profits.bat earnings.bat

Các kết quả tương tự như sau xuất hiện:

00000002: 72 43
 00000004: 65 3A
 0000000E: 56 92
 ...
 ...
 ...
 000005E8: 00 6E
 FC: Earnings.bat longer than Profits.bat

Nếu các tệp Profits.batEarnings.bat giống hệt nhau, fc hiển thị thông báo sau:

Comparing files Profits.bat and Earnings.bat
 FC: no differences encountered

Để so sánh mọi file .bat trong thư mục hiện tại với file New.bat, hãy nhập:

fc *.bat new.bat

Để so sánh file New.bat trên ổ C với file New.bat trên ổ D, hãy nhập:

fc c:new.bat d:*.bat

Để so sánh từng file batch trong thư mục gốc trên ổ C với file có cùng tên trong thư mục gốc trên ổ đĩa D, hãy nhập:

fc c:*.bat d:*.bat

Xem thêm:

Thứ Ba, 27/11/2018 12:29
52 👨 91