- Comanda FC vă permite să comparați unul sau mai multe fișiere în Windows în mod text, Unicode sau binar, indicând cu exactitate diferențele dintre acestea.
- Opțiunile dvs. (/A, /B, /C, /L, /U, /W, /LBn, /nnnn, /N, /OFFLINE, /T) ajustează modul în care sunt interpretate și afișate discrepanțele.
- FC returnează coduri de ieșire (0, 1 sau 2) care facilitează integrarea sa în scripturi și automatizări pentru a verifica modificările.
- Acceptă căi, unități și wildcard-uri pentru compararea loturi de fișiere și poate fi utilizat atât în CMD, cât și în PowerShell prin invocarea fc.exe.
Dacă lucrați cu scripturi, rapoarte, cod sau pur și simplu doriți să verificați dacă un fișier a fost modificat, comanda FC-ul consolei Windows Este una dintre acele resurse discrete, dar incredibil de utile, despre care aproape nimeni nu știe prea multe. Nu trebuie să instalați nimic sau să utilizați programe externe: este inclusă în sistemul de operare și este gata de utilizare din linia de comandă sau PowerShell - puteți vedea cum Comparați texte și fișiere în PowerShell sau CMD.
În rândurile următoare vom vedea Cum se compară fișierele folosind comanda FC în WindowsAcoperă modurile de comparare oferite (ASCII, Unicode și binar), semnificația fiecărui parametru în sintaxa oficială Microsoft, modul de interpretare a codurilor de ieșire și câteva exemple practice pentru utilizarea de zi cu zi. Totul este explicat pas cu pas într-un limbaj clar, fără a omite detalii tehnice importante.
Ce este comanda FC și la ce se folosește?
Comanda FC (Comparare fișiere) Este un instrument de linie de comandă Windows folosit pentru a compara conținutul a două fișiere sau a două seturi de fișiere și a afișa diferențele dintre acestea. Este compatibil cu Windows 10, Windows 11, versiunile anterioare și edițiile server. Windows Server 2019, 2022 și versiuni ulterioare.
Când rulați FC, sistemul analizează ambele fișiere și vă spune Sunt identice, diferă și în ce moduri diferă?În funcție de opțiunea aleasă, poate funcționa la nivel de text (linie cu linie), text Unicode sau la nivel binar (octet cu octet), deci se adaptează atât la fișiere text simple (Comparați fișierele în Notepad) cum ar fi fișiere executabile, imagini sau alte formate binare.
În plus, FC vă permite să rafinați tipul de comparație datorită mai multor opțiuni: puteți Ignoră majuscule și minuscule, ignoră spațiile albe, afișează numerele de linieÎți permite să limitezi numărul de diferențe consecutive pe care le poate gestiona buffer-ul intern, să compari fișierele marcate ca offline și multe altele. Este mult mai flexibil decât pare la prima vedere.
Este important de menționat că, deși poate fi invocat din PowerShell, în acest mediu fc este un alias al cmdlet-ului Format-CustomPrin urmare, dacă doriți să utilizați instrumentul clasic de comparare a fișierelor, trebuie să tastați explicit fc.exe în loc de doar fc, pentru a ne asigura că binarul corect situat în C:\WINDOWS\fc.exe.
Sintaxa completă a comenzii FC
Sintaxa oficială a comenzii, conform ajutorului Microsoft Windows, include două moduri principale de utilizare: comparare text (ASCII sau Unicode) y comparație binarăForma generală este următoarea:
fc /a ] <archivo1> <archivo2>
fc /b <archivo1> <archivo2>
În practică, asta înseamnă că poți adăugați unul sau mai mulți modificatori precedă numele fișierelor pentru a ajusta comportamentul FC. Parametrii cale și unitate sunt opționali, așa că specificați pur și simplu numele fișierului dacă se află în directorul curent; altfel, va trebui să specificați și calea sau unitatea.
Ajutorul clasic care apare la rulare fc /? Într-o linie de comandă spaniolă, sintaxa este rezumată după cum urmează (formatată pentru o mai bună înțelegere):
FC ]
archivo1 archivo2
FC /B archivo1 archivo2
În toate aceste variații, file1 y file2 Acestea reprezintă primul și al doilea fișier (sau modele de fișiere) care urmează să fie comparate. Sunt acceptate și caracterele wildcard, permițând compararea unor grupuri întregi de fișiere într-o singură comandă.
Semnificația fiecărui parametru al comenzii FC
Adevăratul potențial al comenzii devine clar atunci când vedeți ce face fiecare opțiune. Acestea sunt descrise în detaliu mai jos. toți parametrii recunoscuți de fc.exe așa cum apar în documentația Microsoft și în ajutorul încorporat.
Moduri de comparație
/A – Activează un mod de ieșire simplificat pentru comparațiile de text ASCII. În loc să listezeze toate liniile care diferă între cele două fișiere, FC afișează doar prima și ultima linie a fiecărui grup de diferențeEste foarte util atunci când există blocuri mari de modificări și nu doriți ca consola să se umple cu text nesfârșit.
/B – Forța unu comparație binară octet cu octetÎn acest mod, nu se încearcă resincronizarea fluxului de date după ce se găsește o discrepanță; pur și simplu se continuă și se afișează fiecare diferență detectată. Acesta este modul implicit pentru fișierele cu extensii binare obișnuite, cum ar fi .exe, .com, .sys, .obj, .lib sau .bin, chiar dacă nu specificați explicit parametrul /B.
/L – Instruiește FC să efectueze o Comparație ASCII linie cu linieîncercând întotdeauna să resincronizeze fișierele după detectarea unei diferențe. Acesta este modul implicit pentru toate fișierele care nu sunt considerate binare (adică cele fără extensiile executabile și similare menționate anterior).
/U – Schimbă comportamentul lui fc pentru a trata fișierele ca Fișiere text UnicodeAceastă opțiune asigură respectarea codificării specifice (cum ar fi UTF-16) și interpretarea corectă a caracterelor dincolo de ASCII de bază.
Controlul majusculelor, spațiilor și tabulatorilor
/C – Face ca comanda să ignore diferențele dintre majuscule și minusculeDacă se schimbă doar majusculele și minusculele (de exemplu, „Hola” versus „HOLA”), rândurile vor fi considerate echivalente și nu vor fi marcate ca diferite. Rețineți că acest lucru se aplică literelor, dar nu și altor caractere.
/W – Comprimați și minimizați importanța spațiu golAdică, tabulatori și spații. Când o linie are o secvență lungă de spații sau tabulatori consecutivi, FC le va trata ca un singur spațiu. În plus, dacă utilizați /W, comanda ignoră spațiile inițiale și finale a fiecărei linii în timpul comparației, ceea ce este excelent pentru scripturi sau texte în care indentarea este irelevantă.
/T – Dezactivează conversia automată a tabulatorilor în spații. În mod implicit, FC tratează de obicei tabulatorii ca spații cu pauze la fiecare opt caractere, dar cu /T Tabelele sunt respectate așa cum sunt.Acest lucru este util atunci când alinierea exactă face parte din conținutul semnificativ.
Gestionarea și sincronizarea bufferului intern
/LIVRE – Ajustați dimensiunea tampon de linie intern pe care FC îl folosește atunci când compară fișiere text. În mod implicit, acest buffer vă permite să gestionați până la 100 de linii consecutive diferite. Dacă cele două fișiere pe care le comparați au mai mult de 100 de linii consecutive fără potriviri, programul consideră că fișierele s-au deplasat prea departe unul de celălalt și întrerupe comparațiaCu acest parametru puteți crește sau reduce limita respectivă, specificând un număr specific de linii în loc de 100.
/ – Specificați câte linii consecutive trebuie să se potrivească După o discrepanță, FC consideră că a resincronizat cu succes ambele fișiere. Valoarea implicită este 2. Dacă, după un bloc de diferențe, găsește mai puțin de nnnn linii identice consecutive, acele linii vor fi afișate în continuare ca parte a diferențelor, deoarece programul presupune că fișierele rămân nealiniate.
Opțiuni de vizualizare și arhivare offline
/N – Aceasta provoacă numere de linie Când efectuați o comparație ASCII, veți vedea, alături de conținut, referința la linia reală a fiecărui fișier, ceea ce este esențial atunci când ulterior va trebui să editați manual fișierul în cauză.
/OFF – În mod implicit, FC omite fișierele care au setat atributul „offline”. Această opțiune îi spune programului că Compară și fișierele marcate ca offlineceea ce poate fi util în medii în care datele sunt stocate în locații îndepărtate sau în sisteme de fișiere speciale.
Specificații fișier și ajutor rapid
Pe lângă opțiunile de mai sus, este important să înțelegeți cum să specificați fișierele în linia de comandă. Partea sintaxei constând în file1 y file2 defini el primul și al doilea fișier pe care FC o va compara. Puteți utiliza căi complete, căi relative și, dacă este necesar, litere de unitate diferite.
Comanda acceptă și caractere wildcard: * y ?Dacă includeți un asterisc sau un semn de întrebare în fișierul1, FC va lua toate fișierele care corespund acelui model și le va compara cu fișierul sau modelul specificat ca fișierul2. Și dacă utilizați wildcard-ul în fișierul2, instrumentul va aplica nume de fișier echivalent1 pentru a completa modelul rămas și a stabili perechile care ar trebui comparate.
În cele din urmă, modificatorul /? Nu face parte din comparațiile ca atare, ci mai degrabă servește la afișează ajutorul încorporat al comenzii la promptul de comandă. Executare fc /? Este cea mai rapidă metodă de a revizui sintaxa pe propriul computer, întotdeauna în limba instalării Windows.
Cum afișează FC diferențele dintre fișiere
Formatul de ieșire oferit de FC variază ușor în funcție de ceea ce facem. Comparație text ASCII/Unicode sau comparație binarăÎnțelegerea acestui format vă va ajuta să citiți rezultatele mai rapid și să găsiți informațiile de care aveți nevoie.
Într-o comparație ASCII standard, după executarea comenzii, FC afișează de obicei primul numele primului fișier, urmat de liniile din acel fișier care sunt diferite de al doilea fișier. Apoi apare prima linie care coincide din nou în ambele fișiere, ceea ce acționează ca punct de resincronizare. Apoi, structura se repetă cu al doilea fișier: numele său, liniile diferite și prima linie ulterioară corespondentă.
Când activați modul binar cu /BLucrurile se schimbă însă: fiecare discrepanță este prezentată cu o sintaxă de acest tip: \<XXXXXXXX: YY ZZ>. Valoarea XXXXXXXX Este o adresă hexazecimală relativă (începând cu 00000000) care indică poziția în care a fost găsită perechea distinctă de octeți. Lângă ea sunt afișate YY y ZZ, care sunt valorile hexazecimale ale octeților care nu se potrivesc, aparținând fișierului1 și respectiv fișierului2.
Dacă comparația binară ajunge la sfârșitul unuia dintre fișiere și celălalt conține încă date, FC va indica acest lucru unul dintre fișiere este mai lung decât celălaltTotuși, dacă după analizarea întregului conținut nu se detectează nicio diferență, pe ecran va apărea un mesaj ca acesta. FC: no differences encountered, sau echivalentul său localizat, precizând clar că ambele fișiere sunt identice.
În modul ASCII, FC se bazează pe buffer intern de 100 de linii (cu excepția cazului în care l-ați modificat cu /LBn) pentru a citi și a potrivi pe blocuri. Dacă fișierele sunt atât de diferite încât nu poate găsi o potrivire în acel bloc, va afișa mesajul „Resincronizarea a eșuat. Fișierele sunt prea diferite.”, indicând faptul că nu a reușit să realinieze cele două secvențe de text într-un mod rezonabil.
Coduri de ieșire ale comenzii FC
Dincolo de textul pe care îl vedeți pe ecran, executabilul fc.exe returnează un cod de ieșire către sistemul de operare când se termină. Acest cod este extrem de important atunci când se utilizează FC în scripturi batch sau automatizări, deoarece vă permite să luați decizii pe baza rezultatului comparației fără a fi nevoie să analizați manual textul returnat.
Tabelul de coduri de ieșire este foarte simplu și rămâne constant:
- 0 – Fișierele comparate sunt identicNu s-a constatat nicio diferență de conținut.
- 1 – Fișierele sunt diferitExistă cel puțin o discrepanță între fișierul1 și fișierul2.
- 2 – A eroare în timpul comparațieiPoate fi legat de permisiuni, fișiere inaccesibile, probleme de citire sau parametri nevalidi.
Într-un fișier batch în care doriți să verificați modificările, puteți utiliza aceste coduri cu comenzi precum DACĂ NIVEL DE EROARE sau construcții similare, astfel încât scriptul să acționeze într-un fel sau altul în funcție de potrivirea sau nu a fișierelor.
Exemple practice de utilizare a FC
Odată ce teoria este înțeleasă, cel mai util lucru de făcut este să vedem comenzi specifice pe care le puteți executa Aceste exemple sunt folosite în compararea fișierelor zilnice în Windows. Ele se bazează direct pe documentația oficială și pe ajutorul Windows.
Comparați două fișiere text în modul ASCII
Imaginează-ți că ai două rapoarte, lunar.rpt y vânzări.rptȘi vrei să vezi cum diferă, dar fără a copleși ecranul cu linii. Ai putea folosi:
fc /a monthly.rpt sales.rpt
Cu opțiunea /A, FC va afișa doar prima și ultima linie a fiecărui bloc de diferențăceea ce face ca rezultatul să fie mult mai lizibil atunci când modificările sunt ample.
Comparați fișiere binare (de exemplu, scripturi batch)
Dacă ceea ce vă interesează este verificarea modificărilor la nivel de octet în două fișiere batch, să presupunem profits.bat y câștiguri.batÎn mod ideal, utilizați modul binar:
fc /b profits.bat earnings.bat
Dacă există diferențe, veți vedea ceva de genul mai multor linii cu adrese hexazecimale și perechi de octeți diferite. Pe de altă parte, dacă cele două fișiere se potrivesc 100%, FC va returna un mesaj care indică faptul că Nu s-au găsit diferențe în timpul comparației.
Comparați toate fișierele .bat cu un fișier de referință
Uneori este util să comparați mai multe fișiere simultan cu o versiune nouă care acționează ca șablon. De exemplu, dacă doriți să comparați fiecare fișier .bat din directorul curent cu nou.batPuteți folosi această comandă:
fc *.bat new.bat
FC va parcurge toate fișierele .bat din directorul curent care corespund modelului și le va compara unul câte unul cu noul fișier .bat, arătându-vă diferențele dintre fiecare pereche.
Comparați fișierele cu același nume pe unități diferite
O altă situație destul de tipică este verificarea dacă fișierele de pe unitatea C și unitatea D se potrivesc, de exemplu, atunci când validați o copie de rezervă. Pentru a compara toate fișierele .bat din directorul rădăcină al C: cu echivalentele lor de pe D:, puteți tasta:
fc c:\*.bat d:\*.bat
În acest caz, FC va compara fiecare fișier batch din rădăcina C: cu fișierul pe care îl are același nume în rădăcina lui D:Dacă doriți doar să comparați un anumit fișier, va trebui pur și simplu să specificați numele în loc de caracterul wildcard *.bat.
Utilizarea FC în consola Windows și în PowerShell
Consola de comenzi clasică Windows, cunoscută sub numele de CMDOferă un mediu ideal pentru a profita de comanda FC, dar o puteți utiliza și din PowerShell, cu o mică diferență. În CMD, pur și simplu deschideți o fereastră (de exemplu, tastând cmd în meniul Start) și executați comenzile exact așa cum se arată în exemplele anterioare.
În PowerShell, așa cum am menționat deja, fc este un alias al cmdlet-ului Format-CustomPentru a evita conflictele și a vă asigura că utilizați comparatorul clasic de fișiere Windows, trebuie să tastați fc.exe în loc de simplu fcDin acel moment, sintaxa parametrilor rămâne aceeași ca în CMD.
Mulți utilizatori combină FC cu alte comenzi comune ale consolei, cum ar fi CD (pentru a schimba folderele), DIR (pentru a lista conținutul directorului), COPAC (pentru a vizualiza arborele de subfoldere), MOVE o REDENUMIȚI (pentru mutarea sau redenumirea fișierelor) și utilitare precum FIND pentru a căuta șiruri de text într-unul sau mai multe fișiere.
Este complet fezabil să integrezi FC în scripturi mai complexe care efectuează copii de rezervă, sincronizează directoare sau verifică fișierele de configurare. nu au fost modificate în raport cu un șablon original, profitând atât de codurile de ieșire, cât și de opțiunile specifice de comparare.
Variante simplificate de utilizare FC și opțiuni utilizate frecvent
În unele materiale de instruire sau notițe de curs, este obișnuit să găsim o versiune simplificată a sintaxei, evidențiind doar opțiunile cele mai frecvent utilizate. De exemplu, o abreviere foarte comună este:
fc archivo1 archivo2
În această reprezentare, /b servește la indicarea unui comparație binarăDacă este omisă, se presupune că comparația este de tip text (ASCII implicit sau Unicode dacă este specificat /U). File1 și file2 rămân numele fișierelor pe care doriți să le comparați.
Multe rezumate listează și următoarele ca opțiuni cheie: /b pentru comparație octet cu octet, /l pentru comparație linie cu linie, /c pentru comparație fără sensibilitate la majuscule/minuscule și /s pentru comparație recursiv subdirectoareTrebuie clarificat faptul că opțiunea /s nu face parte din sintaxa oficială FC în Windows (de obicei, aparține altor comenzi), dar este uneori citată în scheme generice de comparare a fișierelor sau în note care combină diferite comenzi.
În orice caz, folosind întotdeauna ajutorul încorporat al fc /? iar documentația oficială vă va asigura că aveți lista corectă de parametri pentru versiunea dvs. de Windowsfără a confunda opțiunile din alte comenzi cu cele ale FC.
Având în vedere toate informațiile de mai sus, comanda FC se dovedește a fi un instrument surprinzător de complet pentru oricine trebuie să verifice modificările dintre fișiere în Windows: permite compararea în mod text, Unicode sau binar, ajustarea modului în care sunt gestionate spațiile, majusculele și tabulatorii, gestionarea fișierelor offline, controlul buffer-ului și resincronizarea, interpretarea codurilor de ieșire din scripturi și lucrul cu modele și wildcard-uri pentru loturi întregi de fișiere, toate acestea fără a recurge la aplicații externe și profitând de un utilitar integrat în sistemul de operare în sine.
Scriitor pasionat despre lumea octeților și a tehnologiei în general. Îmi place să îmi împărtășesc cunoștințele prin scriere și asta voi face în acest blog, să vă arăt toate cele mai interesante lucruri despre gadgeturi, software, hardware, tendințe tehnologice și multe altele. Scopul meu este să vă ajut să navigați în lumea digitală într-un mod simplu și distractiv.


