feudelfred
Goto Top

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

Content-Key: 308904

Url: https://administrator.de/contentid/308904

Printed on: April 25, 2024 at 04:04 o'clock

Member: KMUlife
KMUlife Jul 04, 2016 at 11:14:54 (UTC)
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 =)
Member: Friemler
Friemler Jul 04, 2016 at 11:23:12 (UTC)
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