2012-10-18 8 views
9

Ich habe eine geplante Aufgabe eingerichtet, die unter meinem Konto ausgeführt werden soll. Alles, was es ausführt, selbst wenn es erfolgreich ist, gibt einen Operationscode von (2) zurück. Ich habe diesen Fehlercode unter dem folgenden Link nachgeschlagen und behauptet, dass er die spezifische Datei nicht finden kann.Windows 7 Task Scheduler gibt immer Betriebscode zurück 2

http://www.hiteksoftware.com/knowledge/articles/049.htm

Auch wenn ich etwas tun sehr einfach, ich wieder betriebsbereit Code (2). Zum Beispiel:

run program: cmd.exe 

start in path: c:\windows\system32 

Ich beginne die Aufgabe und ich sehe den Prozess in meinem Task-Manager ausgeführt wird, so töte ich die Aufgabe. Ich checke dann den Verlauf der geplanten Aufgabe ein und es erscheint als (2).

Etwas realistischer, was ich tue:

<? 
/* file in c:\php\test.php */ 
echo "hello"; 
?> 

Run-Programm: php.exe

Start in Pfad: c: \ php

Argumente: -f test.php

Alles funktioniert in der Befehlszeile, aber der Windows-Zeitplan-Task gibt den Betriebscode zurück (2). Ich sollte einen Operationscode von (0) sehen, was erfolgreich, korrekt bedeutet?

+0

Soweit ich sehen kann "Opcode" ist nicht das gleiche wie "Last Run Result". Ich habe eine Aufgabe mit Ergebnis 1 und der "Operational Code" in der Geschichte ist 2. Es scheint jedoch, Opcode 2 bedeutet "FAILED": https://technet.microsoft.com/en-us/library/cc727082(v= ws.10) .aspx – Marc

Antwort

20

Sie haben möglicherweise keinen Pfad in dem „Start In (Optional) Feld des Dialogfeldes Aktion bearbeiten setzen.

Auch wenn Sie auf dem Programm einen Pfad hatten, der ausgeführt wurde, Windows 7 Sie will immer noch zu sagen, dass es, wo das Programm auszuführen.

+1

Ich habe den vollständigen Pfad des Programms im Feld "Start in (optional)". In der Tat, ohne es wird mein Skript nicht einmal laufen! – user785179

+0

Das löste es für mich – AndyMcKenna

+1

Dies löste es nicht wirklich für mich, aber es scheint eine beliebte Lösung zu sein. Ich glaube, mein Problem ist, wie php.exe seine Skripte und den Rückgabecode, den es an Windows sendet, beendet. Ich habe am Ende den Windows Return Code 2 ignoriert. – user785179

-1

okay, ich weiß, ich bin spät hier, um die Partei, aber ich glaube, dass viele das Problem von Verwechslung der Operational-Code mit einem Return-Code stammt. ich bin kein Experte für Windows-Programmierung oder Internes (ich mache meinen Lebensunterhalt mit einem Windows-System zu programmieren, aber meine Programmierung ist nicht für Windows-Systeme.)

Wenn ich richtig verstehe: Die Operational Code wird von was auch immer Routine ausgeführt wird bei welchem ​​Wert der Programmierer beschlossen, um es einzustellen festgelegt. Der Rückkehrcode ist ein Hinweis auf Erfolg oder Misserfolg.

Betrachten Sie die folgende (bearbeitet) Beispiel aus der Geschichte eines meiner geplanten Aufgaben: Ereignis 201 Aufgabe Kategorie „Aktion abgeschlossen“ zeigt ein Operational-Code von (2). Unten unter der Registerkarte Allgemein ist die Nachricht:

Task Scheduler Aufgabe erfolgreich abgeschlossen "\ My_task" Instanz "{xxxxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx}", Aktion „C: ..... \ blahblah.exe "mit Return-Code 0.

Es gibt den Hinweis auf Erfolg. Ein anderer Rückgabecode würde auf einen Fehler hinweisen. Der Betriebscode von (2) zeigt lediglich an, dass die Routine beendet war (in diesem Fall), wenn sie gemeldet wurde. Ich glaube nicht, dass für die Operation Code irgendwelche Einstellwerte zu interpretieren sind.

+0

überhaupt nicht helfen, werfen Sie einen Blick auf den Taskplaner in Windows und Sie werden verstehen, was er mit Betriebscode 2 bedeutet - eine einzelne Aufgabe wird nicht nur einen OP-Code zurückgeben .. Wenn es einen Code 2 Sie wissen es gibt ein Problem – roeb

1

Ich hatte ein ähnliches Problem und fand, dass zusätzlich zu dem, was in der angenommenen Antwort und seinen Kommentaren vorgeschlagen wurde, ich eine andere Sache machen musste. Ich musste die Aufgabe neu erstellen und setzen Sie ihre "konfigurieren für" auf Windows Server 2003, Windows XP oder Windows 2000 Ich verstehe nicht, warum, da es nicht für eines dieser Betriebssysteme 'aber nachdem ich meine Aufgabe tatsächlich getan habe hat funktioniert.

Wenn dies ausgeführt wird und funktioniert, und Sie trotzdem einen Fehlercode erhalten, geben Sie am Ende des Skripts exit 0 ein.

Ich brauchte eine Menge googeln, um zu finden, dass dies hoffentlich für jemanden hilfreich ist.

Verwandte Themen