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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 308904
Url: https://administrator.de/contentid/308904
Printed on: May 4, 2024 at 10:05 o'clock
2 Comments
Latest comment
Hi FeudelFred
Die Suchfunktion kennste aber? (Siehe oben rechts)
guggst du hier:
Text vergleichen administrator.de
Allenfalls hilft das ja =)
Zitat von @FeudelFred:
Moin Moin,
ich bin komplett neu im Forum und habe auch keine sonderlich großen Erfahrungen mit Foren.
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 =)
Hallo FeudelFred,
Du könntest
Das ginge dann so:
Wichtig ist hier der Parameter
Dateien, die nur im Quellverzeichnis (hier:
Gruß
Friemler
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