cmdr_paule Geschrieben 24. April 2007 Teilen Geschrieben 24. April 2007 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 24. April 2007 Teilen Geschrieben 24. April 2007 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cmdr_paule Geschrieben 25. April 2007 Autor Teilen Geschrieben 25. April 2007 "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??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 25. April 2007 Teilen Geschrieben 25. April 2007 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 25. April 2007 Teilen Geschrieben 25. April 2007 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cmdr_paule Geschrieben 25. April 2007 Autor Teilen Geschrieben 25. April 2007 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.