Windows Aufgabenplanung Fehler 0x1 bei automatischer Ausführung einer Batch-Datei

Folgendes Szenario:
Sie haben eine Batch (.bat) oder Command (.cmd) Datei erstellt, die einige Dinge auf Ihrem Server oder Rechner automatisieren soll. Nun haben Sie dieses Script getestet und es funktioniert einwandfrei.

Jetzt soll das Script via Windows Aufgabenplanung (Task Scheduling) automatisch jeden Tag zu einem bestimmten Zeitpunkt ausgeführt werden. Also erstellen Sie eine Aufgabe in der Aufgabenplanung und geben alle notwendigen Parameter ein. Um das Ganze zu testen lassen Sie die Aufgabe ausführen und stellen erstaunt fest, dass die Aufgabe mit dem Fehlercode (0x1) beendet wird.
Nach vielen Versuchen, und während sie langsam verzweifeln, werden die herausfinden, das der Fehlercode bedeutet, dass eine Funktion nicht gefunden werden konnt. Eine Funktion in einem Batch-Skipt? *Kopfkratz*

Um es einfach zu machen: Irgendwo in Ihrem Script befindet sich bestimmt z.B. ein @echo Befehl. Dieser ist der Übeltäter, denn in der Aufgabenplanung werden die Aufgaben standardmäßig nicht in einem Fenster ausgeführt. Es öffnet sich also kein Command-Fenster in dem das Skipt abläuft. Also hat der arme @echo Befehl keinerlei Ausgabemedium in das er sein ECHO ausführen kann, und darüber ist er traurig und meldet einen Fehler.

Lösung: Entweder alle Befehle, die eine Ausgabe am Bildschirm erzeugen raus nehmen, oder die Ausgabe in eine Datei umleiten, in dem Sie in der Aufgabenplanung als Parameter zu Ihrem Batch-Aufruf einfach ein „> log.txt“ hinzufügen. Dann funktioniert alles wieder wunderbar.

7 Gedanken zu „Windows Aufgabenplanung Fehler 0x1 bei automatischer Ausführung einer Batch-Datei“

  1. Hat bei mir nicht funktioniert.
    Zwar läuft ein Batch in meiner Aufgabenplanung, aber kein Echo-Befehl, nur eine einzige selbstgeschriebene EXE-Datei wird aufgerufen.

  2. Nachtrag:
    Geholfen hat: Den Pfad bei (ausführen in…) in die Eigenschaften der Aufgabe eintragen.
    Es handelt sich bei dem BSystem um ein W-2008-R2.

  3. Danke für den Hinweis Marco!

    Es ist anzunehmen, dass Deine .EXE dann irgendeinen Fehler „geworfen“ hat. Das sollte dann jedoch in der erwähnten LOG.TXT stehen, wenn Du als Parameter in der Aufgabenplanung ein „> LOG.TXT“ angegeben hast.

  4. Hallo,

    ich habe mit wget zyklisch eine Seite runtergeladen und diese temporär abgespeichert. Ich hatte 2 „Cronjobs“ ohne Probleme und beim 3. (neu) kam nur noch „0x1“.

    Nach Stundenlangem Probieren und überprüfen habe ich festgestellt, dass die Temporäre Datei des 3. Cronjobs nicht die Rechte hatte um von wget überschrieben zu werden.

    Hinzufügen der Rechte für „Jeder“ (Vollzugriff) hat das Problem bei mir gelöst.

    Gruß DomeG

  5. Hallo Christian,

    Habe die Beschreibung über Google direkt gefunden und hat mich informativ weiter gebracht, danke.
    Ich habe allerdings noch eine weitere „Kuriosität“ in Bezug auf die Aufgabenplanung von Win2008 Server Aufgabenplanung.
    Ein Script von mir macht täglich um 5:00 eine Spiegelung bestimmter Verzeichnisse mittels robocopy.
    Dazu wird ein Verzeichnis von einer physikalischen internen Festplatte (D:) auf eine externe USB-Platte gespiegelt.
    Das Problem ist, daß es tagelang läuft und dann sporadisch mal einen Fehler wirft, daß die Aufgabe nicht ausgeführt werden konnte, weil der Benutzer nicht am Netzwerk angemeldet ist?!
    Weder das Script, noch irgendeine der betroffenen Festplatte hat etwas mit Netzwerk zu tun.

    Vielleicht zur Info, generell läuft hier eine Domäne. Die Backups werden auf dem Hauptserver ausgeführt…

    Danke für Tipps
    gruß Arne

  6. Hi Arne,
    läuft Dein Job unter einem Domain-Benutzerkonto oder unter einem Systemkonto (lokales System)?
    Schau doch mal nach, ob Dein Job mit irgend einem anderen Job kollidiert, der eventuell Dienste anhält oder neu startet.

  7. [Sorry, falls doppelt! Letzter Post hat Fehler verursacht!]

    Hi Christian. Danke für die fixe Reaktion.

    Der Job läuft unter einem Domänen-Benutzer.
    Der physikalische Server (hier läuft das Script) verwaltet über den HyperV-Manager einen virtuellen Server.
    Der virtuelle Server wird vom physikalischen nachts um 3 heruntergefahren und auf die Festplatte D: gesichert (.vhd-Datei). Danach wird der virtuelle Server wieder hochgefahren.

    Um eine physikalische Trennung zum Backup zu haben, sichere ich mit dem Script um 5:00 die .vhd-Datei von D: auf eine externe Festplatte, die ich täglich wechsel.

    Eine Kollision dürfte nicht vorkommen, da eine Zeitspanne von 2 Stunden relativ hoch ist.
    Das interne Backup auf D: dauert nur wenige Minuten, das habe ich schon festgestellt.

    Für weitere Tipps danke ich Dir schonmal
    Gruß Arne

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.