Vergelijk 2 directories in Windows

Ik moet 2 mappen “A” en “B” vergelijken en de lijst met bestanden en mappen en mappen worden toegevoegd die is toegevoegd of gewijzigd.

Ik heb geprobeerd met behulp van Winmerge-software, maar het vergelijkt de aanwezige bestanden niet in de interne mappen (dus ik moet naar elke interne map handmatig wijzen en moet vergelijken)

Is er een manier om dit te bereiken.


Antwoord 1, Autoriteit 100%

Voor Windows kunt u deze oplossing .

Hier is de juiste manier om het te doen, zonder de externe
Downloads. Het lijkt in eerste instantie veel, maar als je het eenmaal hebt gedaan,
het is erg makkelijk.
Het werkt in alle Windows-versies van 7 terug naar 95.
Voor ons voorbeeld gaat ervan uit dat u twee mappen die ‘A’ vergelijkt
en ‘B’.

  1. voer cmd.exe uit om een ​​opdrachtprompt te krijgen. (In Windows 7 werkt de PowerShell hier niet voor, FYI.) Doe het dan nog een keer, zodat u er twee hebt
    ze openen naast elkaar.
  2. Ga in elk venster naar de mappen die u wilt vergelijken. (Met behulp van ‘CD’-opdrachten. Als je hier niet op je bent, dan jij
    moet waarschijnlijk gaan met de externe hulpprogramma’s, tenzij u wilt
    Leer opdrachtprompt spullen.)
  3. Type ‘DIR / B & GT; A.txt ‘in één raam en’ DIR / B & GT; B.txt ‘in de andere. U hebt nu twee tekstbestanden die de inhoud van elk vermelden
    Directory. De vlag van de / B betekent blote, die de directory-lijst stroken
    alleen naar bestandsnamen.
  4. verplaatsen b.txt in dezelfde map als a.txt.
  5. Type ‘fc a.txt b.txt’. De opdracht ‘FC’ betekent bestand vergelijken. Dit spuugt een lijst met de verschillen tussen de twee bestanden, met een
    extra regel tekst boven en onder elk verschil, zodat u weet waar
    zij zijn. Voor meer opties over hoe de uitvoer wordt geformatteerd, typt u ‘fc
    /?’ bij de prompt. Je kunt de verschillen ook in elkaar overlopen
    bestand met iets als ‘fc A.txt B.txt > verschillen.txt’.

Hebben
leuk.


Antwoord 2, autoriteit 68%

Hier is ook PowerShell-code voor hetzelfde.

$dir1 = Get-ChildItem -Recurse -path C:\dir1
$dir2 = Get-ChildItem -Recurse -path C:\dir2
Compare-Object -ReferenceObject $dir1 -DifferenceObject $dir2

Bron: MS Devblog – Dr. Scripto


Antwoord 3, autoriteit 18%

We gebruiken Beyond Compare al jaren en het is best handig. U kunt zien welke bestanden identiek zijn, welke bestanden zich alleen in map “A” bevinden en welke bestanden alleen in map “B”, en bestanden die anders zijn (voor die bestanden kunt u zien welke specifieke wijzigingen zijn aangebracht).


Antwoord 4, autoriteit 7%

Dit is niet per se beter dan andere opties die al zijn genoemd, maar het kan beter passen bij bepaalde gebruikssituaties. In mijn geval wilde ik zien wat er anders was voordat ik die verschillen van de ene map naar de andere kopieerde. Deze methode is daar geweldig voor, aangezien de optie /Lbetekent dat alleen wordt vastgelegd wat er zou gebeuren als deze opdracht zou worden uitgevoerd.

robocopy C:\dir1 C:\dir2 /MIR /FP /NDL /NP /L

Je kunt het uitvoerformaat verder verfijnen met andere vlaggen, of de logica wijzigen die wordt gebruikt om te vergelijken, enz. Raadpleeg robocopy docsvoor alle opties.


Antwoord 5

Enkele jaren geleden heb ik een opdrachtregelprogramma gemaakt, CrcCheckCopy, om me te helpen de integriteit van grote kopieën van gegevens te verifiëren. Het leest de bronmap en produceert een lijst met de CRC’s van alle bestanden. En dan, met behulp van deze lijst, kan het de andere map verifiëren.

Ik gebruik het ook om na enkele jaren dezelfde map te verifiëren, om er zeker van te zijn dat er niets per ongeluk is verwijderd of gewijzigd.

Ik geef het gratis van hiervoor het geval mensen die op deze vraag aankomen het willen proberen .

Other episodes