Veröffentlicht 24. April 200718 j 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
24. April 200718 j 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.
25. April 200718 j "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???
25. April 200718 j 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
25. April 200718 j 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
25. April 200718 j 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.