- Il comando FC consente di confrontare uno o più file in Windows in modalità testo, Unicode o binaria, indicandone con precisione le differenze.
- Le opzioni (/A, /B, /C, /L, /U, /W, /LBn, /nnnn, /N, /OFFLINE, /T) regolano il modo in cui le discrepanze vengono interpretate e visualizzate.
- FC restituisce codici di uscita (0, 1 o 2) che ne facilitano l'integrazione in script e automazioni per verificare le modifiche.
- Supporta percorsi, unità e caratteri jolly per confrontare batch di file e può essere utilizzato sia in CMD che in PowerShell richiamando fc.exe.
Se lavori con script, report, codice o vuoi semplicemente verificare se un file è stato modificato, il comando Console di Windows fc È una di quelle risorse discrete ma incredibilmente utili di cui quasi nessuno sa molto. Non è necessario installare nulla o utilizzare programmi esterni: è incluso nel sistema operativo stesso ed è pronto per l'uso dal prompt dei comandi o da PowerShell: puoi vedere come Confronta testi e file in PowerShell o CMD.
Nelle righe seguenti vedremo Come confrontare i file utilizzando il comando FC in WindowsIllustra le modalità di confronto offerte (ASCII, Unicode e binario), il significato di ciascun parametro nella sintassi ufficiale Microsoft, come interpretare i codici di output e diversi esempi pratici per l'uso quotidiano. Tutto è spiegato passo dopo passo in un linguaggio chiaro, senza tralasciare alcun dettaglio tecnico importante.
Che cos'è il comando FC e a cosa serve?
Il comando FC (Confronto file) È uno strumento da riga di comando di Windows utilizzato per confrontare il contenuto di due file o due set di file e visualizzarne le differenze. È compatibile con Windows 10, Windows 11, versioni precedenti ed edizioni server. Windows Server 2019, 2022 e versioni successive.
Quando esegui FC, il sistema analizza entrambi i file e ti dice sono identici, differiscono e in che modo differiscono?A seconda dell'opzione scelta, può funzionare a livello di testo (riga per riga), testo Unicode o a livello binario (byte per byte), quindi si adatta sia ai file di testo normale (Confronta i file nel Blocco note) come file eseguibili, immagini o altri formati binari.
Inoltre, FC consente di affinare il tipo di confronto grazie a diverse opzioni: è possibile Ignora le lettere maiuscole e minuscole, ignora gli spazi vuoti, visualizza i numeri di rigaPermette di limitare il numero di differenze consecutive che il buffer interno può gestire, di confrontare file contrassegnati come offline e altro ancora. È molto più flessibile di quanto sembri a prima vista.
È importante notare che, sebbene possa essere richiamato da PowerShell, in questo ambiente fc è un alias del cmdlet Format-CustomPertanto, se si desidera utilizzare lo strumento di confronto file classico, è necessario digitare esplicitamente fc.exe invece di solo fc, per garantire che il binario corretto si trovi in C:\WINDOWS\fc.exe.
Sintassi completa del comando FC
La sintassi ufficiale del comando, secondo la guida di Microsoft Windows, prevede due modalità principali di utilizzo: confronto di testo (ASCII o Unicode) y confronto binarioLa forma generale è la seguente:
fc /a ] <archivo1> <archivo2>
fc /b <archivo1> <archivo2>
In pratica, questo significa che puoi aggiungere uno o più modificatori Precedono i nomi dei file per regolare il comportamento di FC. I parametri percorso e unità sono facoltativi, quindi è sufficiente specificare il nome del file se si trova nella directory corrente; in caso contrario, sarà necessario specificare anche il percorso o l'unità.
La guida classica che appare quando si esegue fc /? In un prompt dei comandi spagnolo, la sintassi è riassunta come segue (formattata per una migliore comprensione):
FC ]
archivo1 archivo2
FC /B archivo1 archivo2
In tutte queste varianti, File 1 y File 2 Rappresentano il primo e il secondo file (o pattern di file) da confrontare. Sono supportati anche i caratteri jolly, consentendo di confrontare interi gruppi di file con un singolo comando.
Significato di ciascun parametro del comando FC
Il vero potenziale del comando diventa chiaro quando si esaminano le funzioni di ciascuna opzione. Queste sono descritte in dettaglio di seguito. tutti i parametri riconosciuti da fc.exe così come appaiono nella documentazione Microsoft e nella guida integrata.
Modalità di confronto
/A – Abilita una modalità di output semplificata per i confronti di testo ASCII. Invece di elencare tutte le righe che differiscono tra i due file, FC mostra solo la prima e l'ultima riga di ogni gruppo di differenzeÈ molto utile quando ci sono grandi blocchi di modifiche e non si vuole che la console si riempia di testo infinito.
/B – Forza uno confronto binario byte per byteIn questa modalità, non viene effettuato alcun tentativo di risincronizzare il flusso di dati dopo aver rilevato una discrepanza; l'operazione procede semplicemente visualizzando ogni differenza rilevata. Questa è la modalità predefinita per i file con estensioni tipicamente binarie come .exe, .com, .sys, .obj, .lib o .bin, anche se non si specifica esplicitamente l'opzione /B.
/L – Istruire FC a eseguire un Confronto riga per riga ASCIITentando sempre di risincronizzare i file dopo aver rilevato una differenza. Questa è la modalità predefinita per tutti i file che non sono considerati binari (ovvero quelli senza le estensioni eseguibili e simili menzionate in precedenza).
/U – Modifica il comportamento di fc per trattare i file come file di testo UnicodeQuesta opzione garantisce che venga rispettata la codifica specifica (ad esempio UTF-16) e che i caratteri oltre l'ASCII di base vengano interpretati correttamente.
Controllo delle maiuscole, degli spazi e delle tabulazioni
/C – Fa sì che il comando ignori le differenze di maiuscole e minuscoleSe cambia solo la forma (ad esempio, "Hola" anziché "HOLA"), le righe saranno considerate equivalenti e non saranno contrassegnate come diverse. Nota che questo vale per le lettere, ma non per gli altri caratteri.
/W – Comprimere e minimizzare l’importanza di spazio vuotoCioè, tabulazioni e spazi. Quando una riga contiene una lunga sequenza di spazi o tabulazioni consecutivi, FC li tratterà come un unico spazio. Inoltre, se si utilizza /W, il comando ignora gli spazi iniziali e finali di ogni riga durante il confronto, il che è ottimo per script o testi in cui il rientro è irrilevante.
/T – Disabilita la conversione automatica delle tabulazioni in spazi. Per impostazione predefinita, FC tratta le tabulazioni come spazi con interruzioni ogni otto caratteri, ma con /T Le tabulazioni sono rispettate così come sonoCiò è utile quando l'allineamento esatto fa parte del contenuto significativo.
Gestione e sincronizzazione del buffer interno
/LIBBRE – Regola la dimensione di buffer di linea interno che FC utilizza quando confronta file di testo. Per impostazione predefinita, questo buffer consente di gestire fino a 100 righe consecutive diverse. Se i due file che si stanno confrontando hanno più di 100 righe consecutive senza corrispondenze, il programma considera che i file si siano spostati troppo distanti e interrompe il confrontoCon questo parametro è possibile aumentare o diminuire tale limite, specificando un numero specifico di righe anziché 100.
/ – Specificare quanti le righe consecutive devono corrispondere Dopo una discrepanza, FC considera di aver risincronizzato correttamente entrambi i file. Il valore predefinito è 2. Se, dopo un blocco di differenze, trova meno di nnnn righe identiche consecutive, tali righe verranno comunque visualizzate come parte delle differenze, poiché il programma presuppone che i file rimangano disallineati.
Opzioni di visualizzazione e archiviazione offline
/N – Provoca la numeri di linea Quando si esegue un confronto ASCII, accanto al contenuto verrà visualizzato il riferimento effettivo alla riga di ciascun file, il che è essenziale quando in seguito sarà necessario modificare manualmente il file in questione.
/SPENTO – Per impostazione predefinita, FC salta i file che hanno impostato l'attributo "offline". Questa opzione indica al programma che Confronta anche i file contrassegnati come offlineche può essere utile in ambienti in cui i dati sono archiviati in posizioni remote o in file system speciali.
Specifiche del file e aiuto rapido
Oltre alle opzioni sopra descritte, è importante capire come specificare i file sulla riga di comando. La parte della sintassi che consiste in File 1 y File 2 definire il prima e seconda fila quale FC effettuerà il confronto. È possibile utilizzare percorsi completi, percorsi relativi e, se necessario, lettere di unità diverse.
Il comando supporta anche i caratteri jolly: * y ?Se includi un asterisco o un punto interrogativo in file1, FC prenderà tutti i file che corrispondono a quel modello e li confronterà con il file o il modello specificato come file2. E se usi il carattere jolly in file2, lo strumento applicherà il nomefile equivalente1 per completare lo schema rimanente e stabilire le coppie da confrontare.
Infine, il modificatore /? Non fa parte dei confronti in quanto tali, ma serve piuttosto a mostra la guida integrata del comando al prompt dei comandi. Esegui fc /? È il modo più veloce per rivedere la sintassi sul tuo computer, sempre nella lingua dell'installazione di Windows.
Come FC visualizza le differenze tra i file
Il formato di output offerto da FC varia leggermente a seconda di cosa stiamo facendo. Confronto di testo ASCII/Unicode o con una confronto binarioComprendere questo formato ti aiuterà a leggere i risultati più velocemente e a individuare le informazioni di cui hai bisogno.
In un confronto ASCII standard, dopo aver eseguito il comando, FC solitamente visualizza il primo nome del primo file, seguito dalle righe di quel file che sono diverse dal secondo file. Quindi appare il prima linea che coincide di nuovo in entrambi i file, che funge da punto di risincronizzazione. Quindi la struttura viene ripetuta con il secondo file: il suo nome, le diverse righe e la prima riga corrispondente successiva.
Quando si attiva la modalità binaria con /BTuttavia, le cose cambiano: ogni discrepanza viene presentata con una sintassi di questo tipo: \<XXXXXXXX: YY ZZ>. Il valore XXXXXXXX Si tratta di un indirizzo esadecimale relativo (che inizia con 00000000) che indica la posizione in cui è stata trovata la coppia di byte distinta. Accanto ad esso sono mostrati YY y ZZ, che sono i valori esadecimali dei byte non corrispondenti appartenenti rispettivamente a file1 e file2.
Se il confronto binario raggiunge la fine di uno dei file e l'altro contiene ancora dati, FC indicherà che uno dei file è più lungo dell'altroTuttavia, se dopo aver analizzato tutto il contenuto non viene rilevata alcuna differenza, sullo schermo apparirà un messaggio come questo FC: no differences encounteredo il suo equivalente localizzato, rendendo chiaro che entrambi i file sono identici.
In modalità ASCII, FC si basa sul suo buffer interno di 100 righe (a meno che non sia stato modificato con /LBn) per leggere e confrontare blocchi. Se i file sono così diversi che non riesce a trovare una corrispondenza all'interno di quel blocco, verrà visualizzato il messaggio "Risincronizzazione fallita. I file sono troppo diversi", a indicare che non è stato possibile riallineare le due sequenze di testo in modo ragionevole.
Codici di uscita del comando FC
Oltre al testo che vedi sullo schermo, l'eseguibile fc.exe restituisce un codice di uscita al sistema operativo al termine del confronto. Questo codice è estremamente importante quando si utilizza FC all'interno di script batch o automazioni, perché consente di prendere decisioni in base al risultato del confronto senza dover analizzare manualmente il testo restituito.
La tabella dei codici di uscita è molto semplice e rimane costante:
- 0 – I file confrontati sono identicoNon è stata riscontrata alcuna differenza nel contenuto.
- 1 – I file sono diversiC'è almeno una discrepanza tra file1 e file2.
- 2 - UN errore durante il confrontoPotrebbe essere correlato a permessi, file inaccessibili, problemi di lettura o parametri non validi.
In un file batch in cui si desidera verificare le modifiche, è possibile utilizzare questi codici con comandi come SE LIVELLO DI ERRORE o costruzioni simili, in modo che lo script agisca in un modo o nell'altro a seconda che i file corrispondano o meno.
Esempi pratici di utilizzo di FC
Una volta compresa la teoria, la cosa più utile da fare è vedere comandi specifici che puoi eseguire Questi esempi vengono utilizzati quotidianamente nel confronto dei file in Windows. Si basano direttamente sulla documentazione ufficiale e sulla guida di Windows.
Confronta due file di testo in modalità ASCII
Immagina di avere due report, mensile.rpt y vendite.rptE vuoi vedere come differiscono, ma senza riempire lo schermo di linee. Potresti usare:
fc /a monthly.rpt sales.rpt
Con l'opzione /A, FC visualizzerà solo la prima e l'ultima riga di ogni blocco di differenzail che rende il risultato molto più leggibile quando le modifiche sono estese.
Confrontare file binari (ad esempio, script batch)
Se ciò che ti interessa è controllare le modifiche a livello di byte in due file batch, diciamo profitti.bat y guadagni.batL'ideale sarebbe utilizzare la modalità binaria:
fc /b profits.bat earnings.bat
Se ci sono differenze, vedrai qualcosa come diverse righe con indirizzi esadecimali e coppie di byte diversi. Se, d'altra parte, i due file corrispondono al 100%, FC restituirà un messaggio che indica che Non sono state riscontrate differenze durante il confronto.
Confronta tutti i file .bat con un file di riferimento
A volte è utile confrontare più file contemporaneamente con una nuova versione che funge da modello. Ad esempio, se si desidera confrontare ogni file .bat nella directory corrente con nuovo.pipistrelloPuoi usare questo comando:
fc *.bat new.bat
FC esaminerà tutti i file .bat nella directory corrente che corrispondono al modello e li confronterà uno per uno con il nuovo file .bat, mostrandoti le differenze tra ciascuna coppia.
Confronta i file con lo stesso nome su unità diverse
Un'altra situazione abbastanza tipica è verificare se i file sull'unità C e sull'unità D corrispondono, ad esempio, durante la convalida di un backup. Per confrontare tutti i file .bat nella directory radice di C: con i loro equivalenti su D:, è possibile digitare:
fc c:\*.bat d:\*.bat
In questo caso, FC confronterà ogni file batch nella radice C: con il file in cui si trova lo stesso nome nella radice di D:Se si desidera confrontare solo un file specifico, è sufficiente specificare il nome anziché il carattere jolly *.bat.
Utilizzo di FC nella console di Windows e in PowerShell
La classica console dei comandi di Windows, nota come CMDOffre un ambiente ideale per sfruttare i vantaggi del comando FC, ma è possibile utilizzarlo anche da PowerShell con una piccola differenza. In CMD, è sufficiente aprire una finestra (ad esempio, digitando cmd nel menu Start) ed eseguire i comandi esattamente come mostrato negli esempi precedenti.
In PowerShell, come già accennato, fc è un alias del cmdlet Format-CustomPer evitare conflitti e assicurarti di utilizzare il classico comparatore di file di Windows, devi digitare fc.exe al posto di semplicemente fcDa quel momento in poi, la sintassi dei parametri rimane la stessa di CMD.
Molti utenti combinano FC con altri comandi comuni della console, come CD (per cambiare cartella), DIR (per elencare il contenuto della directory), ALBERO (per visualizzare l'albero delle sottocartelle), MOSSA o RINOMINARE (per spostare o rinominare i file) e utilità come TROVA per cercare stringhe di testo all'interno di uno o più file.
È del tutto fattibile integrare FC in script più complessi che eseguono backup, sincronizzano directory o verificano file di configurazione non sono stati modificati rispetto a un modello originale, sfruttando sia i codici di uscita sia le opzioni di confronto specifiche.
Varianti di utilizzo FC semplificate e opzioni utilizzate di frequente
In alcuni materiali didattici o appunti delle lezioni, è comune trovare una versione semplificata della sintassi, che evidenzia solo le opzioni più frequenti. Ad esempio, un'abbreviazione molto comune è:
fc archivo1 archivo2
In questa rappresentazione, /b serve per indicare un confronto binarioSe omesso, si presume che il confronto sia di tipo testo (ASCII per impostazione predefinita o Unicode se è specificato /U). File1 e file2 rimangono i nomi dei file che si desidera confrontare.
Molti riepiloghi elencano anche le seguenti opzioni chiave: /b per il confronto byte per byte, /l per il confronto riga per riga, /c per il confronto senza distinzione tra maiuscole e minuscole e /s per il confronto sottodirectory ricorsivamenteÈ opportuno chiarire che l'opzione /s non fa parte della sintassi FC ufficiale in Windows (di solito appartiene ad altri comandi), ma a volte viene citata in schemi generici di confronto di file o in note che mescolano comandi diversi.
In ogni caso, utilizzando sempre l'aiuto integrato di fc /? e la documentazione ufficiale ti assicurerà di avere l'elenco corretto dei parametri per la tua versione di Windowssenza confondere le opzioni di altri comandi con quelle di FC.
Considerate tutte le informazioni di cui sopra, il comando FC si rivela uno strumento sorprendentemente completo per chiunque abbia bisogno di verificare le modifiche tra i file in Windows: consente di confrontare in modalità testo, Unicode o binaria, regolare la gestione di spazi, lettere maiuscole e tabulazioni, gestire i file offline, controllare il buffer e la risincronizzazione, interpretare i codici di uscita negli script e lavorare con pattern e caratteri jolly per interi batch di file, il tutto senza ricorrere ad applicazioni esterne e sfruttando un'utilità integrata nel sistema operativo stesso.
Scrittore appassionato del mondo dei byte e della tecnologia in generale. Adoro condividere le mie conoscenze attraverso la scrittura, ed è quello che farò in questo blog, mostrarti tutte le cose più interessanti su gadget, software, hardware, tendenze tecnologiche e altro ancora. Il mio obiettivo è aiutarti a navigare nel mondo digitale in modo semplice e divertente.


