it-swarm.com.de

Führen Sie eine Batchdatei mit dem Windows-Taskplaner aus

Ich habe eine Batch-Datei daily.bat, dies ist der Code:

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

Und ich habe eine Aufgabe mit dem Taskplaner in Windows 7 erstellt. Wenn ich den Stapel manuell ausführe, läuft alles gut, aber wenn ich versuche, ihn mit dem Taskplaner auszuführen, passiert nichts.

Meine Aktion ist 

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"

UAC ist aus und ich bin Admin.

Irgendeine Idee, warum das nicht funktioniert?

121
Ruben

Ich hatte das gleiche Problem, aber ich fand eine andere Lösung, ohne mein Batch-Skript ändern zu müssen.

Das einzige, was ich verpasst habe, ist die Option "Aktion" - Option "Start in (optional)".

Gehen Sie zu den Task-Eigenschaften -> Aktion -> Bearbeiten -> Füllen Sie wie folgt:

  1. Aktion : Ein Programm starten
  2. Programm/script : Pfad zu Ihrem Batch-Skript, z. C:\Users\beruk\bodo.bat
  3. Argumente hinzufügen (optional) : <falls erforderlich - abhängig von Ihrem Skript>
  4. Start in (optional) : Geben Sie den vollständigen Pfad zu Ihrem Batch-Skript-Speicherort ein, z. C:\Users\beruk\ (Keine Anführungszeichen um Start In setzen)

Klicken Sie dann auf OK

Für mich geht das. Viel Glück!

227
Ghazi

Keine der oben genannten Methoden hat funktioniert. Ich habe es so ausprobiert, wie es in einem Tutorial gesagt wurde, und es hat funktioniert.

Aktion: Starten Sie ein Programm 

Programm/Skript: cmd

Argumente hinzufügen:
/c start "" "E:\Django-1.4.1\setup.bat"  

Arbeitete für mich an Win7 Pro. Sie müssen ein Konto mit einem Kennwort haben (leere Kennwörter sind nicht geeignet).

42
Arun Raja

Für diejenigen, deren Bat-Dateien in Taskplaner mit Windows 8+ noch nicht funktionieren []], möchte ich eine Antwort auf Ghazis Antwort hinzufügen - nach langem Leiden:

1) Wählen Sie unter Aktionen "ErstellenGRUNDLEGENDEAufgabe" und nicht "Aufgabe erstellen".

Das hat es für mich getan, und die anderen Themen nicht zu vergessen:

  1. Verwenden Sie den Pfad Start In Ihrer Batchdatei, auch wenn dies optional ist 
  2. Verwenden Sie Anführungszeichen, in Ihrem Programm starten> Programm-/Skripteintrag, d. h. "C:\my scripts\runme.bat" ...
  3. ABER KEINE Anführungszeichen in Ihrem Feld Start in. (Verrückt aber wahr!)

Dies funktionierte, ohne dass eine Eingabeaufforderung ausgelöst werden musste. 

(Entschuldigung, meine Vertretung ist zu niedrig, um Ghazis Kommentar mit meinem Tipp zu grundlegenden Aufgaben zu versehen.)

37
micstr

Stellen Sie sicher, dass "Start In" KEINE ANGEBOTE hat.

19
Jonathan

Es funktioniert jetzt. Das habe ich getan. Sie werden wahrscheinlich nicht alle diese Schritte benötigen, damit es funktioniert, aber probieren Sie es einfach aus:

  • Überprüfen Sie die Kontoparameter Ihrer geplanten Aufgabe und stellen Sie sicher, dass sie ausgeführt werden, unabhängig davon, ob jemand an der Maschine angemeldet ist

  • check run mit den meisten Privilegien/Rechten

  • Gehen Sie zuerst auf den vollständigen Pfad: cd C:\inetpub\wwwroot\infoweb\factuur\cron

  • Verwenden Sie keine doppelten Anführungszeichen in Ihren Batchdateien (weiß nicht warum, scheint aber zu helfen)

  • Geben Sie in der Eingabeaufforderung "Net User administrator/active: yes" ein, melden Sie sich ab und melden Sie sich als Super-Admin an. Die Benutzerkontensteuerung ist deaktiviert

7
Ruben

Hatte ein Problem, bei dem meine Aufgabe nicht einfach ausgelöst wurde, weil sie auf einem Laptop ohne Netzkabel ausgeführt wurde ... Unter der Registerkarte "Bedingungen" wird standardmäßig geprüft, dass eine Aufgabe nicht ausgeführt wird, wenn keine Wechselstromversorgung angeschlossen ist.

5
Chriz

Ich habe mich mehrere Stunden damit beschäftigt und viele verschiedene Vorschläge ausprobiert.

Ich habe es endlich geschafft, indem ich Folgendes getan habe:

Aktion: Starten Sie ein Programm

Programm/Skript: C:\scriptdir\script.bat

Argumente hinzufügen (optional) script.bat

Starten Sie in (optional): c:\scriptdir

nur ausführen, wenn der Benutzer angemeldet ist

mit höchsten Privilegien laufen 

konfigurieren für: Windows Vista, Windows Server 2008

3
Robb

Unter Windows7 Pro habe ich festgestellt, dass die Lösung von Arun für mich funktionierte: Ich könnte dies auch mit "Kein Benutzer angemeldet" erreichen, ich entschied mich jedoch für die Verwendung höchster Zugriffsrechte.

Erfahrungsgemäß müssen Sie über ein Konto mit einem Kennwort verfügen (leere Kennwörter sind nicht gut). Wenn das Programm Sie nach Abschluss des Assistenten nicht zur Eingabe des Kennworts auffordert, gehen Sie zurück und bearbeiten Sie etwas, bis es funktioniert!

Dies ist die Methode, falls nicht klar ist, was funktioniert

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 
3

Stellen Sie sicher, dass "Start In" NICHT mit einem BACKSLASH endet.

2
Michael Kehoe

Wenn der Rest für Sie fehlschlägt, stellen Sie sicher, dass der Benutzer, den Sie als Task ausführen möchten, Zugriff auf die Datei hat, die Sie verwenden möchten.

In meinem Fall habe ich versucht, eine Batchdatei unter C:\Users\Administrator\Desktop auszuführen, auf die das Konto nicht zugreifen konnte. Durch Verschieben an eine neutrale Position unter C:\wurde das Problem behoben.

2
Vince
  1. Verwenden Sie keine doppelten Anführungszeichen in Ihrer cmd/batch-Datei
  2. Stellen Sie sicher, dass Sie zum vollständigen Pfad start in (optional) gehen:
    C:\Erforderliche_Datei\Anforderungsliste\QDE\cmd_practice \

 enter image description here

Bitte überprüfen Sie, mit welchem ​​Benutzerkonto Sie unsere Aufgabe ausführen. Es kann vorkommen, dass Sie Ihre Aufgabe mit einem anderen Benutzer als dem Standardbenutzer ausführen, und dieser Benutzer benötigt einige zusätzliche Berechtigungen .. Außerdem kann es vorkommen, dass die Aufgabe ausgeführt wird, Sie jedoch keine Auswirkungen erkennen können, da die Batchdatei auf einen Benutzer wartet Bitte überprüfen Sie daher den Task-Manager, wenn Ihr Prozess läuft. Wenn es vorkommt, dass ich einen Stapel mit einem svn-Update einer Webseite plane, wird der Prozess hängen, da svn nach dem Akzeptieren des Serverzertifikats gefragt hat.

1
user6039542

Wenn Sie die Schaltfläche Ausführen im Hauptfenster des Taskplaners verwenden, um mehrere Variationen zu testen, wurden die korrekten Einstellungen gefunden. Diese beiden Optionen müssen kombiniert werden: - Nur ausführen, wenn der Benutzer angemeldet ist - Mit höchsten Berechtigungen ausführen . Alle anderen Variationen sind fehlgeschlagen. Es ist ärgerlich die ganze Zeit, die damit verschwendet wird, aber es funktioniert zumindest. OS: WINDOWS 8 CORE (BASIC) -Version

0
sapitron

Führen Sie die Aufgabe mit hohen Berechtigungen aus.

fügen Sie ein\am Ende des Pfads in "Start in Ordner" ein, z.

Ich weiß nicht warum, aber das funktioniert manchmal für mich.

0
C Jee