blaber
Goto Top

Batch Vergleichen von Dateien

Hallo Leute,

ich habe ein kleines Problem bei einer Batch-Datei.
In dieser versuche ich zwei Text-Dateien miteinander zu vergleichen, hier ein kleines Beispiel:

if "type 1.txt"="type 2.txt" echo entsprechen sich&&pause

Die meisten von euch werden wahrscheinlich den Kopf schütteln, aber ich komme momentan einfach nicht dahinter, wie ich das lösen soll.

Danke schon mal für eure Antworten!

Content-Key: 232417

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

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

Member: rubberman
Solution rubberman Mar 12, 2014, updated at Mar 13, 2014 at 11:37:34 (UTC)
Goto Top
Hallo Blaber,

COMP oder FC erledigen das.

>nul fc 1.txt 2.txt
if not errorlevel 1 echo entsprechen sich

Grüße
rubberman
Member: Biber
Solution Biber Mar 12, 2014, updated at Mar 13, 2014 at 11:37:29 (UTC)
Goto Top
Moin Blaber,

für das Vergleichen von Dateien auf CMD-Ebene gibt es zwei kleine Utilities namens comp.exe (wie compare) und fc.exe (wie file compare).
Beide sind eher zum interaktiven Eben-mal-Gucken gedacht und weniger für die Batchverarbeitung.
Näheres zu deren Funktionsumfang und Syntax erfährst du mit "fc /?"
bzw. "comp /?" am CMD-Prompt.

Beide Utilities geben auch einen Errorlevel gleich 0 zurück, wenn "Gleichheit" der Dateien festgestellt wurde, einen Errorlevel ungleich 1, falls nicht (oder falls eine der Dateien nicht da ist oder falls du den Befehl "fc" mit tz schreibst oder ähnliches)

Für deine Zwecke im Batch wäre also das Richtige
fc pfad1\erster.txt pfad2\zweiter.txt>nul && @echo Dateien sind gleich

Das ">nul" dient nur zum Unterdrücken der Meldung "Dateien sind identisch" (oder was immer fc.exe auf den Bildschirm schreiben würde).
Fehlermeldungen leite ich nicht um (das ginge mit zusätzlichem "2>nul").

Bedeutet, dass ein Fehler wie "Datei nicht vorhanden" durchaus sichtbar wird in dieser Form:
FC: Kann NichtDa.txt nicht öffnen - Datei oder Ordner nicht vorhanden

Grüße
Biber