corpse2001

Problem mit IF und ERRORLEVEL in einem Batch

Hallo,

ich habe da ein Problem mit einem Batch.
Es sollen 2 Dateien verglichen werden was auch soweit funktioniert.
Sind die Dteien gleich soll ein bestimmtes Programm gestartet werden.
Allerdings habe ich nun das Problem, dass das Programm in jedem Fall gestartet wird auch wenn die Dateien Verschieden sind.

Bis jetzt sie mein Batch so aus:

@echo Ueberpruefung gestartet.
cd\
d:
cd d:\Ordner1
dir /s >d:\inhalt\inhalt2.txt
comp d:\inhalt\inhalt1.txt d:\inhalt\inhalt2.txt n
if errorlevel 0 goto neustart

:neustart
start Programm
exit

Die Datei d:\inhalt\inhalt1.txt ist vorhanden.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 35648

Url: https://administrator.de/forum/problem-mit-if-und-errorlevel-in-einem-batch-35648.html

Ausgedruckt am: 13.05.2025 um 19:05 Uhr

miniversum
miniversum 09.07.2006 um 10:18:11 Uhr
Goto Top
Versuchs andersrum. Schau ob der Errorlevel 1 ist und wenn nicht dann starte das Programm.
Mit der Abfrage "if erorlevel 1" kontrollierst du ob der Errorlevel mindestens 1 ist.
Daher mein Vorschlag für die letzten Zeilen:

if errorlevel 1 goto neustart
start Programm
:neustart
exit

miniversum
corpse2001
corpse2001 09.07.2006 um 15:54:03 Uhr
Goto Top
Es funktioniert leider nich, es passiert genau das gleiche wenn ich die "1" nehme.
miniversum
miniversum 09.07.2006 um 19:59:48 Uhr
Goto Top
Sollte aber gehen. Ist ja das selbe Prinzip wie hier auch:
Batch-Datei xcopy Errorlevel

miniversum
Biber
Biber 10.07.2006 um 08:38:58 Uhr
Goto Top
Moin corpse2001,

der Bug ist woanders.
Das "goto neustart" klappt schon.
Aber eine Zeile vorher sollte diese Zeile rein

...
IF Errorlevel 1 goto :eof
:: IF Errorlevel 0 goto Neustart --ist jetzt überflüssig
:: :neustart (Label neustart ist auch überflüssig
Start programm...


Wenn ich es richtig verstanden habe, dass ein Neustart ausgeführt werden soll, wenn KEIN Unterschied vorliegt.

Gruß
Biber
corpse2001
corpse2001 10.07.2006 um 15:31:56 Uhr
Goto Top
ich werde das jetzt mal testen
Biber
Biber 10.07.2006 um 19:29:19 Uhr
Goto Top
ich werde das jetzt mal testen

...Stunden später....

Na, corpse2001, so sehr verifizieren brauchst Du nun auch nicht.
Wenn der Test beim ersten Mal okay war, brauchst Du nicht die ganze Nacht durch wiederholen... wenn es nicht geklappt hat, bringen 10000 Wiederholungen nach meinen Erfahrungen auch nichts mehr....
corpse2001
corpse2001 10.07.2006 um 23:04:23 Uhr
Goto Top
wurde von etwas anderm aufgehalten.
aber das funktioniert leider auch nicht.
Kann es sein das die Nummer vom ERRORLEVEL falsch ist?
Ist es möglich die irgentwie ausgeben zu lassen?
Biber
Biber 11.07.2006 um 09:56:49 Uhr
Goto Top
...Ausgeben kannst Du den Errorlevel jederzeit so:

...
echo Errorlevel ist %ErrorLevel%
:: -->hier ggf noch ein "pause"-Befehl
...
corpse2001
corpse2001 13.07.2006 um 10:04:00 Uhr
Goto Top
So ich habde das Problem!

Der Fehler lag darin, das das "n" hinter dem comp-Befehl einen falschen Errorlevel verursacht hat.
Dieses wurde nun so gelöst:

echo n | comp *.* *.*