Zum Inhalt springen

Errorlevel-Auswertung im Batch


cmdr_paule

Empfohlene Beiträge

Hallo zusammen,

ich habe ein einfaches Batch-Skript geschrieben, dass über den Taskplaner in regelmäßigen Abständen ein Verzeichnis auf dem File Server löscht. Ich möchte gern eine Log-Datei über die Löschvorgänge schreiben lassen, in der lediglich Datum und Erfolg oder Mißerfolg ausgegeben wird.

Hier mein Skript:

@echo off

rem Loescht das Verzeichnis XYZ in regelmässigen Abständen

date /t

cd <Pfad>

del *.* /Q

rd . /S /Q

Kann man die Errorlevel der Löschbefehle auswerten, sodass z.B. beim Erfolg eines Löschbefehls die Meldung "Erfolg" und bei Mißerfolg "nicht erfolgreich" oder so ausgegeben wird? Also z.B:
IF Errorlevel ? GOTO erfolg

ELSE

echo nicht erfolgreich

:erfolg

echo erfolgreich

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier mein Skript:

@echo off

rem Loescht das Verzeichnis XYZ in regelmässigen Abständen

date /t

cd <Pfad>

del *.* /Q

rd . /S /Q

IF Errorlevel ? GOTO erfolg

ELSE

echo nicht erfolgreich

:erfolg

echo erfolgreich

"if errorlevel 1 GOTO erfolg" prüft jedenfalls, ob der errorlevel >= 1 ist, und zwar der errorlevel des rd-kommandos, falls rd überhaupt einen errorlevel-setzt. Ein errorlevel von del bzw. cd wäre zu diesem zeitpunkt aber schon verloren.

Reinhold

BTW: Falsches Forum, bitte verschieben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

"if errorlevel 1 GOTO erfolg" prüft jedenfalls, ob der errorlevel >= 1 ist, und zwar der errorlevel des rd-kommandos, falls rd überhaupt einen errorlevel-setzt. Ein errorlevel von del bzw. cd wäre zu diesem zeitpunkt aber schon verloren.

woher weiß ich denn dass der errorlevel 1 erfolg des kommandos bedeutet? das ist ja eigentlich mein problem, dass ich nicht weiß, welche werte die befehle bei erfolg oder mißerfolg zurückgeben!

BTW: Falsches Forum, bitte verschieben.

Warum falsch? Ist denn Batch keine Skriptprogrammierung???

Link zu diesem Kommentar
Auf anderen Seiten teilen

woher weiß ich denn dass der errorlevel 1 erfolg des kommandos bedeutet?

Bedeutet es auch nicht, sondern genau das Gegenteil. Der errorlevel O würde erfolgreich bedeuten.

das ist ja eigentlich mein problem, dass ich nicht weiß, welche werte die befehle bei erfolg oder mißerfolg zurückgeben!

Wie gesagt, wenn überhaupt ein errorlevel übergeben wird, dann ist 0 erfolgreich und alles andere irgendein Problem oder eine Warnung. Welches Kommando wann welchen errorlevel setzt weiß ich leider auch nicht, da ist wohl google dein Freund.

Warum falsch? Ist denn Batch keine Skriptprogrammierung???

Ich meine, das gehört eher zu Betriebssystemen. Ich würde das ehrlich gesagt nicht Programmierung nennen.

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Errorlevel dürfte dir bei deinen Kommandos nicht helfen, siehe auch

Welche MS-DOS Kommandos haben definierte Rückgabewerte?

@echo off

rem Loescht das Verzeichnis XYZ in regelmässigen Abständen

date /t

cd <Pfad>

del *.* /Q

rd . /S /Q

Achtung, wie immer ungetestet: Wenn du prüfen willst, ob der cd-befehl klappen wird, dann verwende

if exists <Pfad>\nul echo "cd wird klappen"

Wenn du prüfen willst, ob der del-befehl geklappt hat, versuche

if [not] exists *.* echo "del war wohl erfolgreich"

Wenn du prüfen willst, ob der rd-befehl geklappt hat, versuche

if not exists <Pfad>\nul echo "rd war wohl erfolgreich"

Allerdings klappt rd vermutlich nicht, weil das Verzeichnis nicht leer ist. Du stehst nämlich selber drin. :upps

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK mit dem Link hast du mir bereits geholfen. Die verwendeten Befehle geben also nur zufällige Rückgabewerte zurück, also nix, womit man was anfangen könnte.

Die Idee mit dem Prüfen des Vorhandensein von Dateien / Ordner is ganz cool, das werde ich auf jeden Fall mal testen.

Danke schonmal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...