Batchdatei bei Fehler abbrechen lassen

schwinni79
Goto Top
Hallo zusammen,

ich habe eine Batchdatei erstellt und möchte nun abschließend erreichen, dass diese bei Fehlern an der Stelle abbricht und nicht - wie normalerweise üblich- zum nächsten Befehl innerhalb des Stapels geht.

Hintergrund:

Die Datei arbeitet 5 Vorgänge ab - erst zum Schluß soll eine Kontrolldatei angelegt werden. Ist diese Datei vorhanden, wird eine Bestätigungsmail versendet.

Tritt bei Vorgang 2 aber ein Fehler auf, macht die Stapelverarbeitung, wenn möglich, bei Schritt 3 weiter und legt am Ende immer die Datei an - von Fehlern kein Hinweis.

Ziel ist es, bei einem Fehler, egal an welcher Stelle, die Datei zu beenden, den gesamten Stapelverarbeitsvorgang abzubrechen.

Wie ist das möglich?

Vielen Dank für die Hilfe!

Michael

Content-Key: 95796

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

Ausgedruckt am: 03.07.2022 um 15:07 Uhr

Mitglied: 60730
60730 01.09.2008 um 14:14:23 Uhr
Goto Top
Servus,

in solchen Fällen macht es Sinn die Batch in <"code"> <"/code"> - ohne die "" einzufügen.

Du kannst "probieren" %errorlevel% abzufragen oder if not exist oder oder oder...

Aber einfacher wird es, wenn "wir" deinen 5 Schritt Batch Schnippsel sehen und dir am "lebenden" Objekt helfen können.

Gruß
Mitglied: Schwinni79
Schwinni79 01.09.2008 um 15:47:12 Uhr
Goto Top
Hallo Timo,

hier der Code:


Wenn z.B. der Befehl


nicht ausgeführt werden konnte, weil die entsprechende Festplatte nicht erreichbat war, soll das Script abbrechen und nicht die Mail per blat.exe versenden...

Verstehst du, worauf ich hinaus will?

Michael
Mitglied: AndreasHoster
AndreasHoster 01.09.2008 um 16:08:56 Uhr
Goto Top
Unter der Vorraussetzung, daß c:\script\tc-mount.bat einen Errorlevel zurückgibt, wenn ein Fehler aufgetreten ist, kann man das mit
erreichen.
Errorlevel 0 ist erfolgreich, 1 oder höher gibt Fehler an.
Allerdings muß ein Script entsprechend programmiert sein, damit es Errorlevels zurückgibt. Ohne Rückgabe hast Du nicht viele Chancen mitzukriegen, ob das Skript erfolgreich lief.
Mitglied: Schwinni79
Schwinni79 01.09.2008 um 16:16:57 Uhr
Goto Top
Hallo zusammen,

wie stelle ich das denn mit den errorlevels an - das o.g. script mountet eine mit TrueCrypt verschlüsselte externe HDD. Wo und wie kontrolliere ich denn auf errorlevel und interpetiere sie anschließend?

Michael
Mitglied: 60730
60730 01.09.2008 um 16:32:22 Uhr
Goto Top
Servus,

CALL C:\scripts\tc-mount.bat
"sagt" mir natürlich nicht so viel.

Ich würde es so lösen:

Ps:
>C:\WINDOWS\system32\
kannst du dir schenken, denn "C:\WINDOWS\system32\" ist / sollte im Pfad stehen - ein
ntbackup.exe meineparameter
reicht in dem Fall auch bzw.
%windir%\system32\ntbackup.exe
"passt immer -egal - wie der Ordner von Windows nun heißt.

Gruß
Mitglied: Schwinni79
Schwinni79 01.09.2008 um 16:45:49 Uhr
Goto Top
Hallo Timo,

das ist die kopierte Synatx von Windows aus dem Taskplaner. Habe sie mir gar nicht so genau angesehen.

Vielen Dank für deine ausführliche Hilfe - ich werde das Script etwas umstellen und wie oben beschrieben anpassen. Die CALL- Befehle brauche ich an dieser Stelle gar nicht...

Gruß
Michael
Mitglied: AndreasHoster
AndreasHoster 01.09.2008 um 17:15:42 Uhr
Goto Top
Wo: Direkt nach dem Befehl, bei dem ein Fehler auftreten kann.
Beispiel:
Wenn Ping erfolgreich ein Paket verschickt und eine Antwort bekommt, gibt Ping Errorlevel 0 zurück. Falls keine Antwort zurückkommt, dann gibt ping Errorlevel 1 zurück.
Und mit IF frage ich das ab und beende es entweder mit exit oder schicke ein Net send.