FC
FC Porównuje dwa zbiory lub dwie grupy zbiorów
TYP: ZEWNĘTRZNY
POSTAĆ:
FC [/A][/C][/L][/Lb n][/N][/T][/W][/nnn] zbiór1 zbiór2 – tekstowo (znakowo)
FC [/B] zbiór1 zbiór2 – binarnie
ZNACZENIE:
FC porównuje pierwszy wyszczególniony zbiór (zbiory) z drugim, wyświetlając raport o każdej napotkanej różnicy między nimi. UWAGA: Porównywane zbiory mogą być o różnych wielkościach. Komenda COMP porównuje zbiory o takich samych rozmiarach.
PARAMETRY:
nazwa_zbioru1 Pierwszy porównywany zbiór, lub grupa zbiorów
nazwa_zbioru2 Drugi porównywany zbiór, lub grupa zbiorów
/A Skraca raport o błędach przy porównywaniu w trybie i końcowa każdej grupy napotkanych różnic.
/B Wymusza porównywanie binarne, pliki porównywane są bajt po bajcie i różnice wyświetlane w następującej postaci: xxxxxxxx: yy zz (gdzie: „xxxxxxxx” jest adresem względnym pary bajtów licząc od początku pliku). Adresem początkowym jest 00000000, a „yy” i „zz” są wartościami bajtów plików, odpowiednio: „nazwa_ścieżki1” oraz „nazwa_ścieżki2”. Przełącznik /B przyjmowany jest automatycznie w przypadku porównywania plików z rozszerzeniem .EXE, .COM, .SYS, .OBJ, .LIB, .BIN
/C Powoduje jednakowe traktowanie liter małych i dużych, wszystkie traktowane są jako duże.
/L Wymusza porównywanie plików w trybie ASCII, przełącznik przyjmowany jest automatycznie w przypadku plików nie posiadających rozszerzenia .EXE, .COM, .SYS, .OBJ, .LIB, .BIN
/Lb n Ustawia rozmiar wewnętrznego bufora na n linii. Wartość standardowa wynosi 100. Porównywanie zostaje przerwane w przypadku napotkania większej niż n liczby kolejnych różniących się linii.
/N Wyświetla numery linii przy porównywaniu w trybie ASCII.
/T Nie powoduje zmiany znaków tabulacji na spacje. Domyślnie znaki tabulacji traktowane są jako 8 spacji.
/W Powoduje kompresję znaków niewidocznych w tekście (znaków tabulacji i spacji). Wiele spacji występujących obok siebie traktowanych jest jako jedna. Należy zauważyć, że spacje nie są ignorowane za wyjątkiem występujących na początku i na końcu linii.
/nnnn Określa liczbę linii, które muszą być zgodne, zanim napotkane zostaną różnice między plikami. Jeżeli napotkana liczba zgodnych linii będzie mniejsza, nastąpi sygnalizacja błędu porównania.
Raport o błędach porównania:
Raport o błędach porównania ma następującą postać: dla pierwszego pliku zostaną wyświetlone wszystkie linie, w których wystąpiły różnice, następnie zgodne w obu plikach. Analogiczne informacje zostaną wyświetlone dla drugiego pliku. Standardowo liczba linii, które muszą być zgodne, wynosi 2, lecz można to zmienić przy pomocy przełącznika /nnnn.
Ograniczenia porównywania:
Podczas porównywania zlecenie FC używa dużego obszaru pamięci (wystarczającego do przechowania 100 linii). Jeżeli rozmiary plików są większe niż zakres dostępnej pamięci, porównywany jest jedynie fragment każdego pliku mieszczący się w buforze. Porównywanie takie kończy się komunikatem:
resynch failed. Files are too different.
Dla plików binarnych o rozmiarach większych niż zakres dostępnej pamięci, porównywane są kolejne ich fragmenty mieszczące się w pamięci i raport o błędach ma postać opisaną powyżej.
PRZYKŁADY:
1. Pliki tekstowe
=================
Aby porównać pliki tekstowe MONTHLY.RPT i SALES.RPT, należy napisać:
FC /A MONTHLY.RPT SALES.RPT
2. Pliki binarne
================
Jeżeli należy sprawdzić różnice występujące w plikach, które nie są plikami tekstowymi, można w tym celu użyć przełącznika /B. Na przykład, aby porównać pliki zawierające programy PROFITS.EXE i EARNINGS.EXE należy napisać:
FC /B PROFITS.EXE EARNINGS.EXE
Raport o błędach może wyglądać tak, jak poniżej:
00000002: fc b6
00000004: 12 14
0000000e: 56 92
00000012: e8 5c
00000013: bb 7c
00000014: 14 0e
00000015: 0a 0d
0000001e: 43 7a
0000001f: 09 0a
00000022: be e6
000005e0: 00 61
000005e1: 00 73
000005e2: 00 73
000005e3: 00 69
000005e4: 00 67
000005e5: 00 6e
000005e6: 00 6d
000005e7: 00 65
000005e8: 00 6e
fc: earnings.exe longer than profits.exe
Jeżeli porównywane pliki okażą się identyczne, na ekranie pojawi się następujący komunikat:
fc: no different encountered