Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fc(CMD) — OpenDesktop 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 fc(CMD)                         19 June 1992                         fc(CMD)


 Name

    fc - compare two files and display the differences between them

 Syntax

    To make an ASCII comparison, use the following syntax:

    fc [/a] [/c] [/l] [lbn] [/n] [/t] [/w] [/nnnn]
    [drive1:][path1]filename1 [drive2:] [path2]filename2

    To make a binary comparison, use the following syntax:

    fc /b [drive1:] [path1]filename1 [drive2:][path2] filename2


 Parameters


    drive1][path1]filename1
          Specifies the location and name of the first file you want to com-
          pare.

    drive2:][path2]filename2
          Specifies the location and name of the second file you want to com-
          pare.


 Switches


    /a    Abbreviates the output of an ASCII comparison.  Instead of display-
          ing all the lines that are different, fc displays only the first
          and last line for each set of differences.

    /c    Ignores the case of letters.

    /l    Compares the files in ASCII mode.  fc compares the two files line
          by line and attempts to resynchronize the files after finding a
          mismatch.  This is the default mode for comparing files that do not
          have extensions of .EXE, .COM, .SYS, .OBJ, .LIB, or .BIN.

    /lbn  Sets the number of lines for the internal line buffer.  The default
          length of the line buffer is 100 lines.  If the files being com-
          pared have more than this number of consecutive differing lines, fc
          cancels the comparison.

    /n    Displays the line numbers during an ASCII comparison.

    /t    Does not expand tabs to spaces.  The default behavior is to treat
          tabs as spaces, with stops at each eighth character position.

    /w    Compresses white space (tabs and spaces) during the comparison. If
          a line contains many consecutive spaces or tabs, the /w switch
          treats these characters as a single space.  When used with the /w
          switch, fc ignores (and does not compare) white space at the begin-
          ning and end of a line.

    /nnnn Specifies the number of consecutive lines that must match before fc
          considers the files to be resynchronized.  If the number of match-
          ing lines in the files is less than this number, fc displays the
          matching lines as differences.  The default value is 2.

    /b    Compares the files in binary mode.  fc compares the two files byte
          by byte and does not attempt to resynchronize the files after find-
          ing a mismatch. This is the default mode for comparing files that
          have extensions of .EXE, .COM, .SYS, .OBJ, .LIB, or .BIN.


 Notes


    Reporting differences between files for an ASCII comparison

    When you use fc for an ASCII comparison, MS-DOS reports differences
    between two files by displaying the name of the first file, followed by
    the lines from filename1 that differ between the files, followed by the
    first line to match in both files.  MS-DOS then displays the name of the
    second file, followed by the lines from filename2 that differ, followed
    by the first line to match.

    Using the /b switch for binary comparisons

    MS-DOS uses the following format to report mismatches found during a
    binary comparison:

       xxxxxxxx:yy zz


    The value of xxxxxxxx specifies the relative hexadecimal address for the
    pair of bytes, measured from the beginning of the file.  Addresses start
    at 00000000; the hexadecimal values for yy and zz represent the
    mismatched bytes from filename1 and filename2, respectively.

    Using wildcards

    You can use wildcards (? and *) in either of the filenames you specify
    with the fc command.  If you use a wildcard in filename1, fc compares all
    the specified files to the file specified by filename2.  If you use a
    wildcard in filename2, fc uses the corresponding value from filename1.

    How fc uses memory

    When comparing ASCII files, fc uses an internal buffer (large enough to
    hold 100 lines) as storage.  If the files are larger than the buffer, fc
    compares what it can load into the buffer.  If fc does not find a match
    in the loaded portions of the files, it stops and displays the following
    message:

       Resynch failed.  Files are too different.


    When comparing binary files that are larger than available memory, fc
    compares both files completely, overlaying the portions in memory with
    the next portions from the disk.  The output is the same as that for
    files that fit completely in memory.

 Examples

    Suppose you want to make an ASCII comparison of two text files that are
    named MONTHLY.RPT and SALES.RPT, and you want to display the results in
    abbreviated format.  To make this comparison, type the following command:

       fc /a monthly.rpt sales.rpt


    To make a binary comparison of two batch files named PROFITS.BAT and
    EARNINGS.BAT, type the following command:

       fc /b profits.bat earnings.bat


    The results of this command will be similar to the following:

       00000002: 72 43
       00000004: 65 3A
       0000000E: 56 92
       00000012: 6D 5C
       00000013: 0D 7C
       00000014: 0D 0A
       00000015: 0A 0D
       0000001E: 43 7A
       0000001F: 09 0A
       00000022: 72 44
            ...
            ...
            ...
       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.BAT longer than PROFITS.BAT


    If the PROFITS.BAT and EARNINGS.BAT files were identical, fc would dis-
    play the following message:

       FC: no differences encountered


    To compare every .BAT file in the current directory with the file
    NEW.BAT, type the following command:

       fc *.bat new.bat


    To compare the file NEW.BAT on drive C with the file NEW.BAT on drive D,
    type the following command.

       fc c:new.bat d:*.bat


    To compare each batch file in the root directory on drive C to the file
    with the same name in the root directory on drive D, type the following
    command:

       fc c:*.bat d:*.bat


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026