LA COMMANDE FC
Commande externe. Fonctionne sur la ligne de commande ou dans un batch.
Compare deux fichiers (ASCII ou binaire) et affiche les differences.
Syntaxe
Pour operer une comparaison ASCII, tapez:
FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/W] [/nnnn][lecteur1:][chemin1] fichier1 [lecteur2:][chemin2]fichier2
Pour operer une comparaison binaire, tapez:
FC /B [lecteur1:][chemin1]fichier1 [lecteur2:][chemin2]fichier2
Parametres
[lecteur1:][chemin1]fichier1
Specifie l'emplacement et le nom du premier fichier a comparer.
[lecteur2:][chemin2]fichier2
Specifie l'emplacement et le nom du second fichier a comparer.
Commutateurs
/A
Resume le resultat de la comparaison ASCII. Au lieu d'afficher toutes les lignes qui sont differentes, FC n'affiche que la premiere et la derniere de chaque serie de differences.
/C
Ne fait pas de distinction entre majuscules et minuscules.
/L
Compare ligne par ligne deux fichiers en mode ASCII et tente de les resynchroniser apres detection d'une difference. C'est le mode de comparaison par defaut des fichiers qui ne portent pas l'extension .EXE, .COM, .SYS, .OBJ, .LIB ou .BIN.
/LBn
Definit le nombre de lignes de la memoire tampon interne, 100 etant la valeur par defaut. Si les fichiers compares comportent un nombre plus eleve de lignes differentes consecutives, FC annule la comparaison.
/N
Affiche les numeros de ligne durant la comparaison ASCII.
/T
Ne considere pas les tabulations comme la somme de plusieurs espaces. Par defaut, les tabulations sont traitees comme des espaces, avec un taquet tous les huit caracteres.
/W
Compresse les blancs (tabulations et espaces) durant la comparaison. Si une ligne contient beaucoup de tabulations ou d'espaces consecutifs, le commutateur /W les considere comme un seul et meme espace. Utilise avec ce commutateur, FC ignore (et ne compare pas) les blancs au debut et a la fin d'une ligne.
/nnnn
Specifie le nombre de lignes consecutives qui doivent etre identiques pour que FC estime necessaire de resynchroniser les fichiers. Si le nombre de lignes identiques dans les fichiers est inferieur a ce nombre, FC les considere comme differentes. La valeur par defaut est 2.
/B
Compare les fichiers en mode binaire. FC compare les deux fichiers octet par octet et ne les resynchronise pas lorsqu'il decele une difference. C'est le mode de comparaison par defaut des fichiers qui portent l'extension .EXE, .COM, .SYS, .OBJ, .LIB ou .BIN.
Releve des differences entre deux fichiers compares en mode ASCII
Lorsque vous operez une comparaison ASCII a l'aide de la commande FC, le DOS signale les differences entre deux fichiers en affichant successivement le nom du premier fichier, la derniere ligne identique dans les deux fichiers, les lignes du premier fichier qui different et la premiere ligne identique dans les deux fichiers. Il affiche ensuite, dans l'ordre, le nom du second fichier, la derniere ligne identique dans les deux fichiers, les lignes du second fichier qui different et la prochaine ligne identique dans les deux fichiers.
Utilisation du commutateur /B pour les comparaisons binaires
Voici comment le DOS signale les differences decelees lors d'une comparaison binaire:
xxxxxxxx: yy zz
xxxxxxxx correspond a l'adresse hexadecimale relative de la paire d'octets compares, par rapport au debut du fichier. Les adresses commencent a 00000000; les valeurs hexadecimales de yy et zz representent respectivement les octets differents dans fichier1 et fichier2.
Utilisation de caracteres generiques
Vous pouvez utiliser des caracteres generiques (? et *) pour specifier des noms de fichiers avec la commande FC. Si fichier1 comporte un caractere generique, FC compare tous les fichiers concernes avec fichier2. Si fichier2 comprend un caractere generique, FC utilise la valeur correspondante de fichier1.
Occupation memoire
La comparaison de deux fichiers ASCII necessite une memoire tampon pouvant stocker au moins 100 lignes. Si le volume des fichiers est superieur a l'espace disponible, la commande FC compare les fichiers par parties pouvant etre chargees dans la memoire tampon. Si elle ne detecte pas de correspondances, elle s'arrete et affiche le message:
Echec de resynchronisation. Fichiers trop differents.
Lors d'une comparaison binaire de deux fichiers trop volumineux pour la memoire disponible, FC les compare dans leur integralite en recouvrant la partie residant en memoire par la partie suivante du disque. Le resultat est le meme que pour les fichiers qui tiennent dans la memoire disponible.
Exemples
Si vous voulez operer une comparaison ASCII entre deux fichiers texte appeles MENSUEL.RPT et VENTES.RPT et afficher les resultats sous forme abregee, tapez: fc /a mensuel.rpt ventes.rpt
Pour operer une comparaison binaire entre deux fichiers de commandes appeles BENEF.BAT et GAINS.BAT, tapez:
fc /b benef.bat gains.bat Vous obtiendrez ce type de resultat:
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: GAINS.BAT plus long que BENEF.BAT
Si les fichiers BENEF.BAT et GAINS.BAT sont identiques, FC affiche: FC: aucune difference trouvee
Pour comparer chaque fichier .BAT du repertoire en cours au fichier NOUVEAU.BAT, tapez: fc *.bat nouveau.bat
Pour comparer le fichier NOUVEAU.BAT du lecteur C: au fichier NOUVEAU.BAT du lecteur D:, tapez: fc c:nouveau.bat d:*.bat
Pour comparer chaque batch du repertoire racine du lecteur C: au fichier du meme nom dans le repertoire racine du lecteur D:, tapez: fc c:\*.bat d:\*.bat