Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Errorlevel-Auswertung im Batch

Empfohlene Antworten

Veröffentlicht

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

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.

"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???

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

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.