feudelfred

Textdateien vergleichen BATCH

Moin Moin,
ich bin komplett neu im Forum und habe auch keine sonderlich großen Erfahrungen mit Foren.

Habe eine BATCH geschrieben, die sich aus zwei Verzeichnissen Textdateien, die gleich benannt sind, sucht und diese dann per fc-Befehl miteinander vergleicht. Das Ergebnis des Vergleichs wird in einer .txt-Datei gespeichert.
Nun zu meinem Anliegen:
Wenn ich eine Datei aus einem der beiden Verzeichnisse entferne und den Vergleich dann wieder durchlaufen lasse, dann geht die BATCH einfach über die fehlende Datei hinweg. Ich möchte aber, dass in diesem Falle eine Meldung in die Ergebnis-Datei geschrieben wird.

Hier mein Code:

for %%b in (%verzeichnis1%) DO @(

for /f "tokens=* delims=" %%a in ('dir /b /s /a-d %verzeichnis2% ^| findstr /i /e /c:"%%~nxb"') DO @(

fc %%b %%a /N /L >> %ergebnis%

)
)

echo ERGEBNISSE ERFOLGREICH VERGLICHEN

pause>nul

exit
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 308904

Url: https://administrator.de/forum/textdateien-vergleichen-batch-308904.html

Ausgedruckt am: 29.06.2025 um 19:06 Uhr

KMUlife
KMUlife 04.07.2016 um 13:14:54 Uhr
Goto Top
Hi FeudelFred


Zitat von @FeudelFred:

Moin Moin,
ich bin komplett neu im Forum und habe auch keine sonderlich großen Erfahrungen mit Foren.

Die Suchfunktion kennste aber? (Siehe oben rechts)

guggst du hier:
Text vergleichen administrator.de

Allenfalls hilft das ja =)
Friemler
Friemler 04.07.2016 um 13:23:12 Uhr
Goto Top
Hallo FeudelFred,

Du könntest ROBOCOPY dazu verwenden, eine Liste der Dateien erstellen zu lassen, die jeweils nur in einem der beiden Verzeichnisse vorkommen.

Das ginge dann so:
for /f "skip=2 delims=" %%a in ('robocopy "%Verzeichnis1% "%Verzeichnis2%" *.* /l /mir /xc /xn /xo /njh /njs /ns /fp ^| sort /+41') do (  
  echo %%a
)

Wichtig ist hier der Parameter /L, der dafür sorgt, dass nur eine Dateiliste erstellt jedoch nichts kopiert wird. Der angehängte SORT-Befehl sorgt dafür, dass die Dateiliste nach den Dateipfaden sortiert wird, somit stehen alle Dateien aus dem gleichen Verzeichnis untereinander.

Dateien, die nur im Quellverzeichnis (hier: %Verzeichnis1%) enthalten sind, werden als Neue Datei klassifiziert, Dateien, die nur im Zielverzeichnis (hier: %Verzeichnis2%) enthalten sind, als *EXTRA Datei. Dateien, die in beiden Verzeichnissen enthalten sind, werden durch die Optionen /XC /XN /XO ausgeblendet.

Gruß
Friemler