Hur man jämför innehållet i två mappar och synkroniserar dem

Låt oss anta att du har gjort en säkerhetsuppgift XCopy, SyncToy eller något annat verktyg för att spegla en viss katalog till en annan plats. Om du använder Microsoft SyncToy kan det hända att filerna eller mapparna ibland saknas i destinationen, eller att destinationsmappen har extra filer eller mappar som inte finns i källmappen.

I den här artikeln beskrivs hur du kan jämföra katalogstrukturen (tillsammans med filer) i två olika katalogvägar för att se till att du har en exakt kopia eller spegelkopia av källan. Några av metoderna nedan diskuterar också hur man synkroniserar objekt i två mappar efter jämförelse.

Det finns 12 mappsjämförelsemetoder (för Windows) som diskuteras i den här artikeln. Välj den som passar dig bäst. Om du behöver kontrollera filintegriteten efter synkronisering, använd en av följande hash-kontrollsumverifieringsprocedurer listade.

Jämför innehållet i två mappar med Microsofts WinDiff

WinDiff är ett grafiskt filjämförelsesverktyg från Microsoft som först släpptes 1992 och därefter uppdaterades. Vänligen vänta! Bli inte förvånad av året för den första utgåvan.

WinDiff är fortfarande fantastiskt och det fungerar perfekt i Windows 10, men inget Unicode-stöd. Det har en enorm potential. WinDiff kan jämföra ASCII- och binära filer, jämföra två kataloger och synkronisera mapparna (vänster mapp → höger mapp eller vice versa).

WinDiff nedladdningslänk (lokal spegel). Den senast uppdaterade WinDiff-versionen är 5.2.3790.0 med datumändringsstämpeln som visar 4-7-2016.

Du kan också ladda ner WinDiff som en del av paketet med Windows XP Support Tools och extrahera innehållet med 7-Zip.

Så här gör du en katalogjämförelse med WinDiff:

  1. Starta Windiff.exe.
  2. Klicka på Jämför kataloger på Arkiv-menyn.
  3. I dialogrutan Välj kataloger skriver du de två mappnamn som du vill jämföra i rutorna Dir1 och Dir2. Om du vill jämföra filer i dessa mappar rekursivt, aktivera kryssrutan Inkludera undermappar.

Resultaten eller dispositionsfönstret visar som standard identiska filer såväl som skillnaderna. Du kan dölja identiska filer genom att inaktivera Visa identiska filer från Alternativ-menyn.

Som du kan se, jämför WinDiff inte bara filnamn utan jämför även filinnehållet på båda platserna och markerar förändringar om filinnehållet är annorlunda.

Genom att dubbelklicka på objektet “annorlunda” öppnas jämförelsevyn med färgkodning. De färgkodade resultaten indikerar vad filskillnaderna är.

WinDiff kan göra ASCII och binär jämförelse. Detta betyder att WinDiff inte litar på modifierat datum utan jämför det faktiska innehållet i filerna.

Till exempel ändrade jag ett tecken i en textfil i destinationsmappen (höger mapp). Jag ersatte ett utropstecken med en kolon, och filstorleken är exakt densamma (1 127 byte) på båda platserna. WinDiff tog upp det och visade att filerna är olika.

$config[ads_text6] not found

För att spara katalogjämförelsedifferenser till en fil, klicka på Spara fillista i filmenyn. Skriv ett filnamn med komplett sökväg utan dubbelcitationstecken.

Avmarkera identiska filer och inkludera Checksumsalternativ och klicka på OK. Utdatafilen ser ut så här:

 - D: \ Webbplatser \ Winhelponline \ blogg \ wp-innehåll \ uppladdningar \ 2019: E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-innehåll \ uppladdningar \ 2019 - innehåller endast vänster, endast med höger, olika filer. \ accesschk.exe endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ jämför-mappar.txt endast i E: \ RameshPC-synkroniserad säkerhetskopia \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ Fta-1803-w10.txt endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ Ssh-kommandon-användbara .txt endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ dell-supportassist.png endast i D: \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ disable-theme-sync-ramesh.png annorlunda (E: \ RameshPC-Synced Backup \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019 är nyare). \ 05 \ file-explorer- not-highlight-files.png endast i D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ firefox-forget-about-this-site-4.png differe nt (E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blogg \ wp-innehåll \ uppladdningar \ 2019 är nyare). \ 05 \ msconfig-disable-services-non-microsoft.png endast i D: \ Webbplatser \ Winhelponline \ blogg \ wp-content \ uploads \ 2019. \ 05 \ windows-store-error-0x800706d9.png endast i D: \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ notepad-bing-search .png endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ rundll32-refresh-kommandon.txt endast i E: \ RameshPC-synkroniserad säkerhetskopia \ Webbplatser \ Winhelponline \ blogg \ wp-innehåll \ uppladdningar \ 2019. \ 06 \ arkiv \ 404chk.vbs endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-innehåll \ uppladdningar \ 2019. \ 06 \ arkiv \ actxprxy-saknas -issues.txt endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blogg \ wp-innehåll \ uppladdningar \ 2019. \ 06 \ arkiv \ apps.png endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blogg \ wp-innehåll \ uppladdningar \ 2019. \ 06 \ arkiv \ artiklar.vbs endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content \ upl oads \ 2019. \ 06 \ arkiv \ bash-sh.vbs endast i E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content \ uppladdningar \ 2019 - 17 listade filer 

Eftersom utdatafilen är i tabellavgränsat format, bör du kunna importera till Microsoft Office Excel eller Google Sheets enkelt.

Observera att du kan starta WinDiff direkt med käll- och destinationsvägar som ytterligare växlar för katalogjämförelse. Om du till exempel startar windiff.exe "c:\source" "d:\destination" skulle verktyget startas och genast jämföra de två mappsökvägarna.

WinDiff-kommandoradsväxlar

Här är den kompletta listan över WinDiff-kommandoradsväxlar.

 Användning: windiff [alternativ] sökväg1 [sökväg2] Alternativ: -D Jämför endast en katalog. -F [flaggor] savefile Spara sammansatt fil i "savefile". "Flaggorna" kan bestå av en eller flera av I (identisk), L (vänster), R (höger), F (flyttad leFt), G (flyttad riGht), S (Liknande vänster), A (similiAr höger), X (avsluta efter att spara listan). (t.ex. -FLF sparar lista över vänster- eller flyttade rader). -I-fil Läser lista över filer att jämföra från den angivna inmatningsfilen. Varje rad kan innehålla ett eller två filnamn, mellanrum avgränsat (med citering, om filnamn innehåller mellanslag). Använd "-" som filnamn för att läsa från stdin. Om en rad endast innehåller ett filnamn jämförs filen med sig själv. -N namn NET SEND-meddelande till 'namn' i slutet av jämförelsen. -O Konturvy (ingen automatisk utvidgning). -P Pervers jämförelse: bryter rader på skiljetecken. -S [flaggor] savefile Spara lista över filer till 'savefile'. "Flaggorna" kan bestå av en eller flera av S (samma), L (vänster), R (höger), D (annorlunda), X (avsluta efter sparningslista). (t.ex. -SLD sparar lista över vänster- eller olika filer). -T Jämför hela undertexten. 

För att spara jämförelsesrapporten i en fil med -S omkopplaren. Exempel är nedan:

Spara listan med identiska filer på diff.txt:

 -SS D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Spara listan med olika filer på diff.txt:

 -SD D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Spara listan med endast vänsterfiler på diff.txt:

 -SL D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Sparar listan med endast rätt filer i diff.txt:

 -SR D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Sparar listan med endast vänster- och högerfiler i diff.txt:

 -SLR D: \ output \ diff.txt c: \ folder1 d: \ folder2 

För att lämna WinDiff automatiskt efter att du har sparat jämförelsesrapporten, lägg till X omkopplaren, enligt nedan:

Spara listan med bara rätt filer på diff.txt och avsluta WinDiff

 -SRX D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Spara listan med endast vänster- och högerfiler på diff.txt och avsluta WinDiff

 -SLRX D: \ output \ diff.txt c: \ folder1 d: \ folder2 

För att generera alla 5 individuella "logg" -filer måste du köra WinDiff 5 gånger.

Exempel:

 windiff -SSX identisk.txt c: \ folder1 d: \ folder2 windiff -SDX different.txt c: \ folder1 d: \ folder2 windiff -SLX left-only.txt c: \ folder1 d: \ folder2 windiff -SRX endast för höger .txt c: \ folder1 d: \ folder2 windiff -SLRX vänster-höger-endast.txt c: \ folder1 d: \ folder2 

Se även WinDiff Help File Contents (windiff.hlp) i HTML-format.

Synkronisera mappar med WinDiff

Vad mer? WinDiff kan också kopiera de saknade eller olika filerna till vänster (mapp 1) eller till höger (mapp 2). Att göra så,

  1. Välj Kopiera filer från Arkiv-menyn
  2. Skriv mappvägen där du vill kopiera de saknade / olika filerna.

    Viktigt: Använd inte dubbelcitationstecken runt mappvägen även om mappvägen innehåller mellanslag. WinDiff misslyckas med att kopiera filer om du lägger till dubbla citat till sökvägen.

    $config[ads_text6] not found
  3. Välj kopia från plats (vänster träd till höger träd, eller vice versa)
  4. Avmarkera identiska filer och klicka på OK.

    WinDiff synkroniserar nu mappen genom att kopiera de saknade och ändrade filerna rekursivt till den angivna platsen (Vänster → Höger).

Trots den utmärkta ASCII & binära jämförelsen och grundläggande synkroniseringsfunktioner är WinDiff ofta ett underskattat verktyg bland IT-människor. Det beror på att det har ett föråldrat användargränssnitt och inte har något Unicode-stöd. Men WinDiff räcker för de flesta av oss, särskilt de som använder det engelska OS.

Microsoft har en kunskapsbasartikel om WinDiff, med titeln How to Use Windiff.exe Utility som du kanske vill kolla in.

Jämför innehållet i två mappar med WinMerge

Så här jämför man två mappar med undermappar med WinMerge.

WinMerge är ett Open Source-differentierings- och sammanslagningsverktyg för Windows. Den kan jämföra både mappar och filer och presentera skillnader i ett visuellt textformat som är lätt att förstå och hantera. Låt oss använda den för att jämföra innehållet i två mappar med deras undermappar (dvs. rekursivt).

  1. Starta WinMerge. Klicka på Öppna från Arkiv-menyn

  2. Bläddra för att välja den första mappen och den andra mappen för jämförelse.
  3. Se till att filtret är inställt på *.* Så att alla filer jämförs. Alternativet "Inkludera undermappar" (jämför rekursivt) är som standard aktiverat. Om du bara vill jämföra filer i den översta katalogen, avmarkera alternativet.
  4. Klicka på Jämför

    WinMerge genererar mappsjämförelseresultat och markerar skillnaderna i gul färg.

  5. Klicka på Anpassa kolumner från Verktyg- menyn . Välj de kolumner du vill ha, till exempel Left size, Right size, Left date, Right date från de många andra kolumnalternativ som tillhandahålls.

  6. Expandera posten " Mappar är olika " genom att dubbelklicka på den. Den visar listan över filer som är olika, " endast vänster ", " bara höger " och också de filer som är identiska .

    Obs! Du kan välja att dölja identiska filer och mappar genom att avmarkera “Visa identiska objekt” från Visa-menyn i WinMerge.

Fördelen med att använda WinMerge är att det erbjuder fem olika filjämförelsemetoder att välja mellan:
  1. Fullständig innehåll (standard): Fullständig jämförelse av filer efter innehåll, med alla klockor och visselpipor. Denna metod åberopar plugins och använder diffutilsmotorn för fullständig noggrann skillnad och rörelse av blockdetektering. Detta är den mest kompletta och rekommenderade metoden.
  2. Snabbt innehåll: Förminskad jämförelse av filer efter innehåll. Den här metoden använder strömlinjeformad filjämförelseskod som hoppar över plugins och flyttad blockdetektering. Den här metoden är snabbare än Full Innehåll eftersom den inte laddar filerna. Dess nackdel är att linjefilter inte används vid jämförelse. Till exempel ser denna metod filen som olika även om linjefilter är inställda för att ignorera alla skillnader i filerna.
  3. Modifierat datum: Jämför endast ändringsdatum på filerna, så det är mycket snabbare än någon av innehållsmetoderna. Men uppenbarligen är det bara lika exakt som datum för ändring.
  4. Modifierat datum och storlek: Liknar Modifierat datum, men kontrollerar också filstorlekar när datum är identiska.
  5. Storlek: Jämför endast filstorlekar, så det är snabbt men inte lika exakt som innehållsmetoderna.

WinMerge stöder många kommandoradsväxlar. Kolla in WinMerge Manual för hela listan över kommandoradsväxlar som stöds.

Synkronisera mappar med WinMerge

Om du har avmarkerat Visa identiska objekt från Visa-menyn i WinMerge, visas bara listan över ändrade, vänster- och högerfiler. Det är lätt att synkronisera objekten från vänster → höger eller vice versa.

Allt du behöver göra är att välja filerna (eller markera alla), högerklicka på markeringen och klicka på Kopiera. Välj ett av alternativen i undermenyn Kopiera:

  1. Vänster till höger: Kopiera valda filer från vänster mapp till höger.
  2. Vänster till ...: Kopiera filer från den vänstra mappen till någon annan mapp.
  3. Höger till vänster: Kopiera valda filer från höger mapp till vänster.
  4. Rätt till ... : Kopiera filer från rätt mapp till någon annan mapp.


Metod 3: Jämför filer i två mappar med FreeFileSync

FreeFileSync är en öppen källkodsprogram för jämförelse och synkronisering av programvara för mappar som skapar och hanterar säkerhetskopior av alla dina viktiga filer.

$config[ads_text6] not found
  1. Ladda ner FreeFileSync och installera det.
  2. Om du vill jämföra mappar efter filinnehåll istället för filstorlek eller datum ändrat väljer du Arkivinnehåll i Jämför alternativ. Jämförelse med filstorlek är dock mycket snabbare och mindre resurskrävande.
  3. Välj den vänstra mappen och höger mapp.
  4. Klicka på knappen Jämför (Arkivinnehåll) .

    Den jämför rekursivt objekt i de två mapparna och visar listan över nya och ändrade filer.

    De identiska filerna är dolda i utgången. Den visar bara de vänsterfilerna, olika filer och de bara-högerfilerna som standard, och alternativen kan växlas med knapparna längst ner i FreeFileSync-fönstret.

Synkronisera mappar med FreeFileSync

FreeFileSync erbjuder följande synkroniseringsalternativ som liknar Microsoft SyncToy.

  1. Tvåvägssynkronisering: Identifiera och tillämpa ändringar på båda sidor. Raderingar, flyttningar och konflikter upptäcks med hjälp av en databas.
  2. Spegel: Spegel är vänster → Högersynkronisering. Höger-mappen blir en spegelkopia av den vänstra mappen. Det är detsamma som Microsoft SyncToys Echo- alternativ och robocopy / mir-kommandoraden. Extra filer och mappar i rätt mapp tas bort och olika filer ersätts.
  3. Uppdatering: Det här synkroniseringsalternativet gör en vänstermapp → Synkronisering av höger mapp som liknar alternativet Spegel . Detta alternativ raderar dock inte de extra filerna och mapparna i det högra mappträdet. Det liknar Microsoft SyncToys alternativ för Contribute .
  4. Anpassad: Utöver de ovanstående tre förinställda alternativen, kan du med alternativet Anpassa välja din standardåtgärd för hur du ska hantera en vänsterfil, en ändrad fil eller bara filen med höger. Till exempel kan du konfigurera den för att radera identiska filer om ditt krav är att endast ha unika filer (eliminera dubbletter) i vänster och höger mapp. I de flesta fall behöver du inte välja anpassad inställning om du inte har ett speciellt krav.

Som standard synkroniseras den i två riktningar. Personligen föredrar jag Mirror- säkerhetskopian för mina webbplatsprojekt och uppdatera backup-alternativet för dokument. Välj ett av synkroniseringsalternativen i enlighet därmed.

I jämförelsesresultaten väljs alla filer som standard. Du kan utesluta att en fil ska synkroniseras genom att avmarkera kryssrutan intill filnamnet eller via högerklickmenyn.

  • För att synkronisera alla objekt som visas i listan klickar du på Synkronisera- knappen längst upp.
  • För att synkronisera en viss fil eller en uppsättning filer, uteslut alla objekt (tillfälligt) via högerklickmenyn, aktivera sedan kryssrutan för valda filer, högerklicka på markeringen och klicka på Synkronisera val och klicka på Start .

Det är allt! Dina mappar är nu synkroniserade och kopierings- / uppdaterings- / raderingsoperationerna loggas av FreeFileSync.

Jämför & synkronisera en lokal mapp Vs. FTP-mapp rekursivt

FreeFileSync kan också jämföra en lokal mapp kontra Google Drive eller en lokal mapp kontra en mapp som din FTP-server rekursivt använder FTP- eller SFTP-anslutning. Så här kan du jämföra och synkronisera en lokal mapp och undermappar med en mapp på din FTP-server.

Allt du behöver göra är att klicka på Access-lagringsknappen online bredvid Bläddra-knappen på vänster sida eller höger sida. Klicka på den knappen öppnar följande dialogruta:

Ange din FTP- eller SFTP-anslutningsinformation, referenser och FTP-katalogvägen för att jämföra med din lokala mapp.

När du är klar är du nu tillbaka i jämförelsefönstret.

Välj filstorlek eller metod för jämförelse av filtid och storlek . Den senare jämförelsemetoden är mer tillförlitlig.

Välj synkroniseringsvariant. Jag har ställt min till 2-vägs synkronisering (istället för Mirror ) för detta ändamål.

När du har konfigurerat klickar du på Jämför. Du kommer att se listan över saknade och olika filer i vänster och höger mapp.

Klicka på Synkronisera- knappen för att kopiera filer båda sätten, eftersom 2-vägssynkronisering har valts. Om du bara vill uppdatera FTP-platsen väljer du Mirror sync istället.

Kör FreeFileSync som ett batchjobb | Kommandoradssynkronisering

Du kan spara ovanstående konfiguration i ett batchjobb och köra den via kommandoraden eller Scheduler. Så här sparar du konfigurationen och kör den med kommandoraden, följ dessa steg:

  1. Klicka på Spara som batchjobb ... -alternativ från Arkiv-menyn.

  2. Du kan konfigurera batchjobbet så att det körs minimerat och stänger automatiskt fönstret när synkroniseringen är klar.

  3. Spara batchjobbfilen i en mapp efter ditt val, säg d: \ BatchRun.ffs_batch
  4. För att synkronisera mapparna med kommandoraden använder du följande kommandoradssyntax:
     C: \ Programfiler \ FreeFileSync \ FreeFileSync.exe d: \ BatchRun.ffs_batch 

    Du kan skapa en Windows-batchfil eller köra kommandot ovan via Aktivitetsplanerare med jämna mellanrum efter önskemål.

Tips: FreeFileSync kan också synkronisera mappar mot Google Drive.


Metod 4: Jämför filer i två mappar med TotalCommander

$config[ads_text6] not foundTotal Commander är en filhanterare för Windows som låter dig kopiera, flytta eller ta bort filer. Total Commander kan göra mycket mer än så. Det kan packa och packa upp filer, komma åt FTP-servrar, jämföra filer efter innehåll etc.

  1. Starta Total Commander och välj vänster mapp och höger mapp att jämföra.
  2. Klicka på Synkronisera direkt från kommandomenyn ...

    Med dialogrutan Synkronisera dirs kan du jämföra två kataloger inklusive underkataloger med varandra och sedan kopiera filerna med skillnader till målkatalogen eller någon annan katalog.

    Om du väljer alternativet Asymmetrisk gör den högra mappen till en spegel till vänster - liknande RoboCopy / MIR-kommandoraden eller Microsoft SyncToys Echo alternativ. Det vill säga alternativet kopierar saknade eller olika filer till rätt mapp, och eventuella extra filer och mappar till höger raderas.

    Du kan välja att visa identiska filer eller bara de olika filerna i utgången.

    Total Commander's jämför / synkroniseringsalternativ som förklaras nedan.

    AsymmetriskOm detta alternativ är markerat antas det att en kopia av vänster sida ska skapas på höger sida. Filer som inte finns på vänster sida kommer att markeras för radering på höger sida. Det här alternativet är avsett för säkerhetskopior.
    underkatalogerJämför också underkatalogerna för de två valda katalogerna.
    efter innehållJämför innehållet i filer som har samma storlek och datum. Den kontrollerar att filerna också har samma innehåll.
  3. Välj jämföralternativ "Underkataloger", "efter innehåll".

    Viktigt: Om kryssrutan för ignoreringsdatum är aktiverad misslyckas Total Commander med att hitta de olika / ändrade filerna trots att filstorlekarna är olika. Det verkar vara ett fel i Total Commander, och jag kan återge det varje gång.

  4. Inaktivera lika filer (betecknat med symbolen = ) i Show-avsnittet och aktivera de tre andra knapparna.
  5. Aktivera alternativ för singlar och dubbletter .
  6. Tryck på knappen Jämför

Total Commander - Folder jämför kommandoradsargument

För att starta "Synkronisera dirs" kan du använda följande kommandoradssyntax:

 TOTALCMD64.EXE / S = S d: \ folder_1 d: \ folder_2 

Konfigurera sedan alternativen och tryck på knappen Jämför .

För att starta "Synkronisera dirs" och jämföra mappar direkt använder du denna syntax:

 TOTALCMD64.EXE / S = S: = d: \ folder_1 d: \ folder_2 

(jämförelsen börjar med de godkända katalogerna och de senast använda alternativen.)

Valfritt kan du också skriva in ett inställningsnamn i formen /S=S:SettingsName så att jämförelsen börjar omedelbart baserat på den tidigare sparade inställningen.

Synkronisera mappar med TotalCommander

  1. I jämför-fönstret väljer du de filer du vill kopiera. Detta görs genom att klicka på kryssrutan mellan de två jämförelsekolumnerna, eller genom att välja ett av alternativen i högerklickmenyn.

    Som standard kommer funktionen att välja alla nyare filer för kopiering. För att avmarkera en fil för att förhindra att den kopieras eller synkroniseras, dubbelklickar du på pilen. Om du vill avmarkera flera filer väljer du filerna, högerklickar på objektet och väljer Ta bort markering

    Viktigt: Om det asymmetriska alternativet inte är aktiverat, om en fil i den högra mappen är nyare än den i den vänstra mappen, kommer synkroniseringen att köras från Höger → Vänster för den filen. För att ändra det på andra sätt, klicka på pilmarkeringen bredvid filen, som växlar synkroniseringsriktningen.

    Alternativt kan du högerklicka på filen och välja Omvänd kopieringsriktning för att ändra synkroniseringsriktningen.

  2. Klicka på Synkronisera . Detta öppnar en dialogruta för att kopiera de valda filerna.

    Som standard synkroniseras båda sätten. Om du vill synkronisera ett sätt - t.ex. vänster mapp → höger mapp, avmarkera kryssrutan Höger till vänster och vice versa.

Tips: Med Total Commander kan du till och med synkronisera en lokal katalog och en katalog på en FTP-server.

$config[ads_text6] not found

Metod 5: Jämför & synkronisera mappar i realtid med DSynchronize

DSynchronize är ett trevligt verktyg som du kan synkronisera två mappar manuellt eller automatiskt i realtid. Det här verktyget ger många alternativ än andra mappsynkroniseringsverktyg för dig att konfigurera hur filer synkroniseras.

  1. Starta DSynkronisera och konfigurera käll- och destinationsmappar.
  2. Du kan tilldela anpassat jobbnamn (för senare automatisering) genom att klicka på JOBS-knappen. Låt oss ange Uploads som Uploads
  3. För spegelsynk, se till att den dubbelriktade synkroniseringen är inaktiverad.
  4. För att göra en jämförelse (endast) utan att synkronisera de två mapparna, aktivera alternativet Förhandsgranskningssynkronisering under avsnittet Allmänt.

  5. Klicka på knappen Synkronisera för att se listan över nya, uppdaterade och saknade filer på båda platserna.

Synkronisera mappar

För att synkronisera mappar, avmarkera alternativet Förhandsgranskningssynkronisering under avsnittet Allmänt och klicka på Synkronisera . Som standard synkroniseras en Mirror-läge. Spegelläge har diskuterats i den här artikeln tidigare. Spegelläge ser till att den högra mappen är exakt densamma som den vänstra mappen. Eventuella extra kataloger och filer i destinationen tas bort automatiskt.

Realtidssynkronisering

Så här synkroniserar du två mappar i realtid:

  1. Klicka på Realtime-synkroniseringen under avsnittet Timer.
  2. Konfigurera synkroniseringsinställningarna i realtid efter önskemål. Jag använde standardinställningarna.

    Som standard synkroniseras den automatiskt mappar efter en 10-sekunders förfluten. Du kan konfigurera den för att skjuta upp ytterligare, eller schemalägga den till att köras med angivna intervall.

  3. Aktivera kryssrutan Monitor undermappar för att synkronisera mappar rekursivt .

Jag kopierade några filer till den vänstra mappen (källan), och inom 10 sekunder synkroniserades objekten automatiskt till höger mapp. Du kan se det i denna animerade GIF:

Och ändringarna (fil- eller mapptillägg och raderingar) loggas i huvudfönstret.

När synkronisering i realtid är aktiverad övervakar den för filändringar och programmet sitter i meddelandefältet och väntar på ändringar. Det kräver inte mycket CPU-resurser eller minne. Senast jag kollade, använde den bara cirka 10 MB minne.

Här är listan över framträdande funktioner i DSynchronize:

  • Standard och timersynkronisering.
  • RealTime-synkronisering.
  • Dubbelriktad synkronisering.
  • Transaktionssynkronisering (av NTFS tidskrift).
  • Selektivt filter (du kan utesluta enstaka filer eller mappar).
  • Börja som en tjänst (programmet behöver inte logga in).
  • Stöder symboliska länkar och hårda länkar.
  • Stöder korsningar och monteringspunkter.
  • Stöder ACL.
  • Loggen skickas via e-post.
  • Säkerhetskopia av den tidigare versionen av ersatta filer.
  • Byte till byte jämför.
  • Stöder flera jobb, alla med sina inställningar och synkroniseringsvägar.
  • Minsta resursförbrukning (RAM och CPU).

Kommandoradsstöd

Du kan använda följande kommandorad för att automatisera DSynkronisering:

/START = Börja synkronisera med senast sparade alternativ.

/STARTJOB "JobName" = Börja synkronisera med valda jobbalternativ).

/MINIMIZE = Börjar minimeras i fackfältet.

/HIDDEN = /HIDDEN inte ikonen i fackfältet.

/NOSECURITYCHECK = Gör inte säkerhetskontroll före synkronisering.

/NOMONITORCHECK = Kontrollera inte bildskärmens upplösning.

/AUTOREALTIME = Börjar minimeras, gör en standardsynkronisering och aktivera RealTime.

/SOMEFILE.INI = Börjar med vald INI-fil.

Jobbnamnet kan anpassas genom att klicka på JOBS- knappen högst upp i programmets huvudfönster.

Till exempel, för att automatiskt synkronisera två mappar (tidigare sparat jobb med namnet “Uppladdningar”), skulle jag köra det här kommandot:

 "D: \ dsynchronize \ DSynchronize.exe" / STARTJOB "Uploads" / MINIMIZE 

För att synkronisera de två mapparna (jobbet som heter "Uppladdningar" och aktivera synkronisering i realtid, kör:

$config[ads_text6] not found
 "D: \ dsynchronize \ DSynchronize.exe" / STARTJOB "Uppladdningar" / AUTOREALTIME 

Ovanstående kommando synkroniserar de två mappar som nämns i jobbet och aktiverar realtidsövervakning automatiskt. Du kan se övervakningsikonen i realtid i meddelandefältet.

Det är allt!


Metod 6: Jämför två mappar med HashMyFiles-verktyget med File Hash Checksum

HashMyFiles är ett litet verktyg som beräknar haschkontrollsumma för dina filer. Det kan beräkna hash för filer i en mapp och dess undermappar rekursivt. HashMyFiles låter dig spara resultaten i en fil. Det kan också beräkna hash-kontrollsumma via högerklick-menyn.

Om PowerShell inte är din kopp te, använd HashMyFiles-verktyget från Nirsoft.net för att jämföra hash-filer.

Du kan spara filnamnen och motsvarande hashutgång för källmappsträdet till source.txt . Spara på samma sätt posten för destinationsmappträdet som destination.txt .

I det här exemplet kommer vi att jämföra filer i följande mappar:

 D: \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads \ 2019 E: \ RameshPC-synkroniserad säkerhetskopiering \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019 

Följ dessa steg för att generera filhastigheter med HashMyFiles och jämföra dem:

  1. Ladda ner HashMyFiles och kör det.
  2. Klicka på Hash-typer från Alternativ-menyn och välj SHA-256

  3. Klicka på Välj kolumner från Visa-menyn

  4. I kolumninställningarna aktiverar du alternativen SHA-256, Full sökväg och Filstorlek . Klicka på OK.
  5. Klicka på Arkiv-menyn och välj Lägg till mapp
  6. Välj källmapp för jämförelse.

  7. Klicka för att välja Lägg till filer i undermappar och klicka på OK.
  8. Sortera resultaten efter Full Path- kolumnen och välj alla poster.
  9. Klicka på Spara valda objekt på Arkiv-menyn
  10. Spara listan i en fil med namnet source.txt
  11. Rensa resultaten genom att välja Rensa allt från Arkiv-menyn.
  12. Upprepa stegen ovan och välj destinationsmappen den här gången, spara listan på destination.txt
  13. Redigera nu filerna source.txt och destination.txt med hjälp av Notepad och ta bort basvägarna. Använd alternativet Sök i Notepad för att hitta alla förekomster av basvägen nedan och ersätt med en tom sträng.
     D: \ webbplatser \ Winhelponline \ blogg \ wp-content \ 
  14. På liknande sätt i filen destination.txt, ta bort den här basvägen:
     E: \ RameshPC-synkroniserad säkerhetskopia \ Webbplatser \ Winhelponline \ blog \ wp-content \ 

    Du kanske också vill hitta och ta bort symbolerna = används som separatorer.

    Så här ser filerna ut nu:

  15. Nu, avfyra WinDiff eller din favoritfiljämförelseverktyg för att se skillnaderna.

Du kommer att se listan med olika filer, extrafiler och saknade filer.


Metod 7: Hur man jämför jämför filer i två mappar med hjälp av Robocopy

Låt oss nu se hur man använder det inbyggda Robocopy- konsolverktyget för att jämföra innehållet i två mappar.

Robocopy (“Robust File Copy for Windows”) är ett utmärkt filkopieringsverktyg inbyggt i Windows som har enorma funktioner. Robocopys funktioner är utöver de inbyggda Windows-kopierings- och XCopy-kommandona. RoboCopy är den mest föredragna av alla kommandoradsmetoder eftersom Robocopy jämför inte bara filnamnen utan också den senaste modifierade tiden. Den rapporterar listan med modifierade filer och nya filer / mappar i käll- och destinationsvägarna.

Bland dess utmärkta funktioner inkluderar kopia av "spegel" -läge (liknande Microsoft SyncToys " Echo " -alternativ), möjlighet att försöka kopiera igen om nätverksavbrott, multitrådad kopiering etc. Vi kan använda Robocopy för att bara jämföra innehållet i två mappar (rekursivt) och logga skillnaderna utan att kopiera något, som en torr körning .

Scenario

Min webbplatss filer synkroniseras regelbundet till en extern hårddisk ( E:\ ). För att illustrera, låt oss kontrollera om dessa två mappar är identiska. I det här exemplet kommer vi att jämföra följande mappar, rekursivt (dvs. tillsammans med undermappar, en djup jämförelse):

 D: \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads och E: \ RameshPC-synkroniserad säkerhetskopiering \ Websites \ Winhelponline \ blog \ wp-content \ uploads 
  1. Öppna ett kommandotolk-fönster.
  2. Kör följande kommando och tryck ENTER:
     robocopy "D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads" "E: \ RameshPC-synkroniserad säkerhetskopiering \ Websites \ Winhelponline \ blog \ wp-content \ uploads / L / TS / MIR / LOG: D: \ Diff.txt 

    $config[ads_text6] not found

    Resultaten av kommandot ovan loggas till filen D:\Diff.txt .

  3. Avsluta kommandotolken-fönstret.

Detaljer om Robocopy-kommandoradsväxlarna som används

  • /L :: Endast lista - kopiera inte, tidsstämpla eller ta bort några filer. Det här alternativet används endast för loggning. för en torr körning.
  • /MIR :: MIRror ett katalogträd (motsvarande / E plus / PURGE). Eftersom vi använder den med /L omkopplaren kommer ingen fil / mapp att kopieras faktiskt.
  • /TS :: inkludera källfilens tidsstämplar i utgången.
  • /LOG:file :: utgångsstatus till LOG-fil (skriv över befintlig logg).

I det här exemplet skriver vi utdata till D:\Diff.txt . Så här ser loggen ut:

  ------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- Started : Monday, April 8, 2019 5:06:10 PM Source : D:\Websites\Winhelponline\blog\wp-content\uploads\ Dest : E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\ Files : *.* Options : *.* /TS /L /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /R:1000000 /W:30 ------------------------------------------------------------------------------ 583 D:\Websites\Winhelponline\blog\wp-content\uploads\ *EXTRA Dir -1 E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019\videos\ *EXTRA File 821886 2019/04/07 07:19:24 tiktok-superman-dance.mp4 3 D:\Websites\Winhelponline\blog\wp-content\uploads\2019\Scripts\ Older 210 2019/04/08 10:54:59 0x80071A91.vbs Newer 211 2019/04/08 11:35:32 ErrCodeFinder.vbs New File 211 2019/04/08 11:35:32 Sample.vbs 211 D:\Websites\Winhelponline\blog\wp-content\uploads\h1-10\ 83 D:\Websites\Winhelponline\blog\wp-content\uploads\h1-11\ 1 D:\Websites\Winhelponline\blog\wp-content\uploads\reg\ 9 D:\Websites\Winhelponline\blog\wp-content\uploads\temp\ ------------------------------------------------------------------------------ Total Copied Skipped Mismatch FAILED Extras Dirs : 113 0 113 0 0 1 Files : 4125 3 4122 0 0 1 Bytes : 59.96 m 632 59.95 m 0 0 802.6 k Times : 0:00:00 0:00:00 0:00:00 0:00:00 Ended : Monday, April 8, 2019 5:06:10 PM 

Du kan tydligt se de extra katalogerna och filerna i källan samt destinationsmapparna. Dessutom jämför den tidsstämpeln och berättar om filerna är äldre eller nyare (jämfört med samma fil på din destination).

I det här exemplet är skillnaderna här:

  1. * EXTRA Dir : Extra katalog finns i destinationen men inte källan.
  2. * EXTRA-fil : Extra fil finns i destinationen men inte källan.
  3. Äldre : Den här filen är äldre jämfört med den i destinationen.
  4. Nyare : Den här filen är nyare jämfört med den i destinationen.
  5. Ny fil : Den här filen finns inte i destinationen. Det kallas också en Lonely fil

Komplett lista med RoboCopy-filklassificeringar:

 ----------- ----------- ---------------- ------------ --- ------------- ------------ Classifi_ Finns i existerar i källa / dest källa / dest källa / destination källa Destination File Times Filstorlek Attribut ----------- ----------- ---------------- ------------ --- ------------- ------------ Nyare Ja Ja Src> dest n / an / a Äldre Ja Ja Src <dest n / an / a Nytt Ja Nej n / a / an / a Extra Nej Ja n / a / an / a Ändrad Ja Ja Lika Olika n / a Samma Ja Ja Lika Lika Lika Lika Jämställda Ja Ja Lika Lika Lika Olika Misstämda Ja (fil) Ja (katalog) n / an / an / a ----------- ----------- ---------------- ------ --------- ------------- ------------ 

Obs: En Tweaked fil definieras som en som finns i både källa och destination, med identisk storlek och tidsstämpel, men med olika attributinställningar.

Robocopy är ett fantastiskt verktyg för att jämföra och synkronisera filer i två mappar (tillsammans med undermappar flera nivåer djupa) och lista över skillnaderna i en loggfil.

Synkronisera mappar med Robocopy

För att synkronisera mappar ( endast från mappen till vänster → höger) med RoboCopy använder du samma kommandoradssyntax som vi använde tidigare för att jämföra mappar, men den här gången utan /L (endast listan) -omkopplaren.

RoboCopy gör en enkelriktad synkronisering (från vänster → höger mapp)

RoboCopys spegelkopieringsläge ( /MIR ) liknar Microsoft SyncToys “ Echo ” -funktion. Kom ihåg att RoboCopy endast synkroniserar vänster → höger - INTE en tvåvägssynkronisering.

Det är viktigt att notera att /MIR omkopplaren också tar bort eventuella extra filer och kataloger i målmappsträdet. "Extra" -filer / -mappar är objekt som finns i destinationen men inte finns i källvägen. Kommandot /MIR (spegel) ser till att destinationsmappstrukturen (och filerna) är en exakt kopia av källan.

Använd följande kommandoradssyntax för att synkronisera objekt från vänster → höger mapp:

 robocopy source_folder destination_folder / MIR / MT 

/MT omkopplaren ska göra en multigängad kopia för en supersnabb kopieringsoperation. Det är en valfri switch men extremt användbar.

Synkroniseringsstatusen matas ut i konsolen för varje bearbetat objekt, och statistiken visas i slutet av utgången.

För att logga utgången till en fil använder du denna syntax:

 robocopy source_folder destination_folder / MIR / MT / TS /LOG:D:\Diff.txt 

Automatisera kommandona med en batchfil

Du kan lägga till alla Robocopy-kommandon till Notepad och spara den som en Windows Batch-fil (med .bat förlängning). Dubbelklicka bara på Batch-filen när du vill synkronisera de nämnda mapparna. Du kan till och med köra batchfilen med nödvändiga intervaller med Task Scheduler.

$config[ads_text6] not found


Metod 8: Jämför två mappar med File Hash Checksum med FCIV-verktyget

Med hjälp av den kryptografiska hashningsalgoritmen - t.ex. MD5, SHA-1, kan du verifiera om två filer är identiska eller inte. Kontrollsumman är ett hashvärde som används för att utföra dataintegritetskontroller för filer. Det är en typ av signatur för en fil.

Verktyget Microsoft File Checksum Integrity Verifier (FCIV) är ett kommandoradsverktyg som beräknar kryptografiska hash för MD5 eller SHA1 för filer. Du kan mata ut listan över filer tillsammans med MD5- eller SHA1-hasherna till en XML-databas och sedan jämföra filer i målmappen med hasherna som är lagrade i XML-databasfilen.

Den här metoden är särskilt användbar efter att du har använt en av ovanstående metoder - t.ex. Robocopy eller WinDiff för att synkronisera två mappar och vill verifiera integriteten för varje destinationsfil genom att jämföra hash-filen / kontrollsumma med källplatsens.

Scenario:

Låt oss jämföra innehållet i följande mappar rekursivt med FCIV:

 D: \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads E: \ RameshPC-synkroniserad säkerhetskopiering \ Websites \ Winhelponline \ blog \ wp-content \ uploads 

Ladda ner Microsoft File Checksum Integrity Verifier från officiella Microsoft Download Center och extrahera fciv.exe till en mapp - t.ex. d:\tools . Följ sedan en av dessa metoder:

Alternativ 1

  1. Öppna ett kommandotolk-fönster och använd den här kommandoradsyntaxen:
     d: \ tools \ fciv.exe -r -add "D: \ Webbplatser \ Winhelponline \ blog \ wp-content \ uploads" -bp "D: \ Webbplatser \ Winhelponline \ blog \ wp-content" -sha1 -xml d: \ hashdb.xml 

    Ovanstående kommandorad beräknar SHA1-hash för varje fil rekursivt och matar ut filnamnen och motsvarande hash till en .XML-fil med namnet hashdb.xml .

    Parametern -bp används för att specificera -bp bort från hela sökvägsnamnet. Det säkerställer att basvägen inte ingår i XML-utgången så att du kan jämföra objekten i destinationsmappsbanan med exakt samma mappstruktur.

    Så här ser XML-filens innehåll ut:

  2. I kommandotolken-fönstret ska du nu byta till destinationsmappen genom att köra följande kommando:
     cd / d "E: \ RameshPC-synkroniserad säkerhetskopiering \ Webbplatser \ Winhelponline \ blog \ wp-content" 
  3. Kör sedan följande kommando och tryck ENTER:
     d: \ tools \ fciv.exe -v -sha1 -xml D: \ hashdb.xml 

    Ovanstående kommando verifierar dina destinationsfiler mot hash-kontrollsummorna du har tagit tidigare i XML-filen hashdb.xml .

    I utgången visas listan över modifierade filer (baserad på hash-kontrollsumma) och listan över saknade filer (i destinationen):

    Här är en provutgång.

     Starta kontrollsumverifiering: datum / tidsstämpel Lista över modifierade filer: ----------------------- uppladdningar \ 2019 \ 05 \ w10-enhanced-search-settings.png Hash är: 8dac0a4400d2b700f81bf70c189e49eb6a620a2f Det borde vara: cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d Det går inte att ladda upp Hash-filen \ 2019 \ 05 \ windiff-header.png Felmeddelande: Systemet kan inte hitta filen angiven. Felkod: 2 Det går inte att ladda upp Hash-filer \ 2019 \ 05 \ windows-store-error-0x800706d9.png Felmeddelande: Systemet kan inte hitta den angivna filen. Felkod: 2 uppladdningar \ 2019 \ 05 \ w10-enhanced-search-settings.png Hash är: 8dac0a4400d2b700f81bf70c189e49eb6a620a2f Det borde vara: cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d Det går inte att skicka filen. den angivna filen. Felkod: 2 Kan inte ladda upp filerna från Hash \ 2019 \ 05 \ windows-store-error-0x800706d9.png Felmeddelande: Systemet kan inte hitta den angivna filen. Felkod: 2 Slutverifiering: tidsstämpel 

Ovanstående metod är mycket användbar för att kontrollera integriteten för matchande filer i destinationsmappen. Men det visar inte listan med extra filer i destinationen. That's where Option 2 below has an additional advantage.

Option 2

Rather than outputting the files list and checksums to an XML database, you can output the items in the source and destination to separate text files. Then the text files can be compared using WinDiff, WinMerge, DiffChecker.com or WinCompare utility.

Run these commands from a Command Prompt window.

 fciv -r "D:\Websites\Winhelponline\blog\wp-content\uploads" -bp "D:\Websites\Winhelponline\blog\wp-content" >d:\source.txt fciv -r "e:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads" -bp "e:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content" >d:\destination.txt 

Then, compare the two files source.txt and destination.txt using a file compare tool like WinDiff, WinMerge, DiffChecker.com, DiffMerge or WinCompare.

$config[ads_text6] not found

You'll see the list of missing files, extra files and modified files (based on the computed checksum) in the two folder locations.

I synchronized the two folders using RoboCopy and then compared the folders again using FCIV hash checksum. They're now identical!


Method 9: Compare Two Folders Using PowerShell

Using PowerShell you can recursively compare two folders easily.

Start PowerShell. Copy the following snippet and paste them all in the PowerShell window, and press ENTER

Enter the source folder and destination folders, replacing the source_folder_path and dest_folder_path placeholders respectively.

 $Folder1 = "source_folder_path" $Folder2 = "dest_folder_path" function Get-Directories ($path) { $PathLength = $path.length Get-ChildItem $path -Recurse | % { Add-Member -InputObject $_ -MemberType NoteProperty -Name RelativePath -Value $_.FullName.substring($PathLength+1) $_ } } Compare-Object (Get-Directories $Folder1) (Get-Directories $Folder2) -Property RelativePath | Sort RelativePath, Name -desc 

You'll see an output like this:

The side indicator <= means the file or folder exists only in the source. ie, missing in the destination.

The side indicator => means the file or folder exists only in the destination. ie, missing in the source.

Editor's note: The above code compares only the file names without matching any other details like size, date modified, etc. PowerShell has the capability to do a hash-comparison of items in two folders and output the results, which is described in the next method.

Sync folders

With some 10 additional lines of PowerShell code, you can even copy the different or missing files from source → destination, or vice versa. For more information, see Sync Files And Folders With PowerShell.


Method 10: Compare Two Folders Using PowerShell with File Hash Checksum

To compare files in two locations using file hash checksum, you can use PowerShell. PowerShell by default uses the SHA-256 algorithm, which you can change using the -Algorithm parameter. As said earlier, hash checksum is a kind of signature for a file which is unique.

In this example, we're going to compare the following folders:

 D:\Websites\Winhelponline\blog\wp-content\uploads\2019 E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019 

Use the following command-line to compute the hash for files in the source folder and output the results to source.txt file.

 Get-ChildItem 'D:\Websites\Winhelponline\blog\wp-content\uploads\2019' -Recurse | Get-FileHash | Select Path, Hash | export-csv d:\source.txt -Delimiter "`t" -NoTypeInformation 

Then, run the following command to remove the base paths from the file.

 (gc -path d:\source.txt -raw) -replace 'D:\\Websites\\Winhelponline\\blog\\wp-content\\', '' | Out-File d:\source.txt 

The list of file names (with relative path) along with the SHA-256 hashes are outputted to the source.txt file.

Similarly, run the commands for computing hashes for items in the destination, and then remove the base paths from destinations.txt :

 Get-ChildItem 'E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019' -Recurse | Get-FileHash | Select Path, Hash | export-csv d:\destination.txt -Delimiter "`t" -NoTypeInformation 
 (gc -path d:\destination.txt -raw) -replace 'E:\\RameshPC-Synced Backup\\Websites\\Winhelponline\\blog\\wp-content\\', '' | Out-File d:\destination.txt 

The above command computes the hash for each file in the destination folder recursively, and the output is written to d:\destination.txt

$config[ads_text6] not found

Compare using PowerShell

Next, compare the files using the following PowerShell command:

 Compare-Object -ReferenceObject $(Get-Content d:\source.txt) -DifferenceObject $(Get-Content d:\destination.txt) | fl 

It shows the different files and the location of each item denoted by the symbols <= or => for left folder and right folder respectively. The output also shows extra files in the source as well as the destination.

Compare using WinDiff

Alternately, you can run WinDiff and compare d:\source.txt and d:\destination.txt . You can use the following WinDiff command-line to compare the files:

 d:\Tools\windiff.exe d:\source.txt d:\destination.txt 

The WinDiff output shows differences highlighted in yellow/red. From the above screenshot, we can infer that the file 0xc1900101-error.png is different. Also, the destination folder or the right folder (denoted by the symbols !> in WinDiff) has an extra file named 1h.txt .

PowerShell supports many hash algorithms and so it has an advantage over the FCIV.exe tool. The Microsoft FCIV tool supports MD5 and SHA-1 algorithms only, which are outdated and can be ineffective due to collision issues, albeit very rarely. SHA-1 collision means that two files have identical SHA-1 hashes but different content. So, SHA-256 may be the preferred algorithm for file or folder comparison in a production environment.


Note that the command-line methods 11 & 12 below only help you compare the structure of two directories along with files. They don't compare file sizes or modified date to know which is the newer. They only do a plain comparison based on file names and you wouldn't know if one of the destination files becomes corrupt during a copy operation. In a production environment, you may need to use other tools or methods if you need to verify the integrity of your files in the source and destination folders, to make sure they are the exact same copies.

Method 11: List the folder structure using TREE command

To compare two directories along with sub-directories, the good old TREE command comes extremely handy. Suppose you want to compare the two folders (including file names) D:\SOURCE and D:\DEST, follow these steps:

  1. Open a Command Prompt window.
  2. Type these commands:
     TREE D:\SOURCE /A /F >D:\SOURCE.TXT 
     TREE D:\DEST /A /F >D:\DEST.TXT 

    This outputs each of the command results to separate text files in your D:\ drive's root directory. The text files will have your directory structure in a tree format, which makes it easy for comparison work.

    Quick Tip: To compare only the directories, remove the /F flag.
  3. Next, fire up your text comparison utility like WinDiff, WinMerge or DiffMerge. Alternately, you can compare the two text files online via diffchecker.com.
  4. Go to DiffChecker.com and paste the contents of d:\source.txt in one column, and D:\DEST.txt in another column. Click Find differences .

    Directory comparison

    Directory and files comparison

Method 12: List folder structure using the DIR Command

To compare the contents of two directories, another command-line you can use is the DIR command.

Use the following command-line syntax to generate the list of files in a directory recursively. You can then compare it using a compare tool or DiffMerge.

 DIR D:\SOURCE /S /AD /B >D:\SOURCE.TXT 
 DIR D:\DEST /S /AD /B >D:\DEST.TXT 
Quick Tip: To include files along with the directory listing, remove the “/AD” flag.

There is one problem though, when using the DIR command. It lists full directory and file paths in the output, as below:

  1. D:\Source\Apr\Week1
  2. D:\Source\Apr\Week2
  3. D:\DEST\Apr\Week1
  4. D:\DEST\Apr\Week2

In that case, you'll need to remove the comparison base paths D:\SOURCE\ and D:\DEST\ in the respective text files by editing them with Notepad. To bulk replace text, use the Replace option in Notepad and remove every occurrence of the base path.

Once done, save the files and compare the contents online via DiffChecker or using an offline text-comparison tool like WinDiff or WinMerge.

$config[ads_text6] not found

Directory comparison – List generated using DIR instead of TREE

I bet you'll find directory contents output generated using TREE to be much easier and far neater than DIR .


Hope the above methods helped you quickly compare the contents of two folders recursively, identify missing and modified files and reconcile differences.

Let's know your comments!

Relaterade Artiklar