web-dev-qa-db-fra.com

Exécuter un fichier de commandes avec le planificateur de tâches Windows

J'ai un fichier batch daily.bat, c'est le code:

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

Et j'ai créé une tâche avec le planificateur de tâches dans Windows 7. Lorsque j'exécute le lot manuellement, tout se passe bien, mais lorsque j'essaie de l'exécuter avec le planificateur de tâches, rien ne se produit.

Mon action est 

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

UAC est désactivé et je suis administrateur.

Une idée pourquoi cela ne fonctionne pas?

121
Ruben

J'ai rencontré le même problème, mais j'ai trouvé une autre solution sans avoir à modifier mon script batch.

La seule chose qui m'a échappé est dans les paramètres "Action" - option "Démarrer dans (facultatif)".

Allez dans les propriétés de la tâche -> onglet Action -> Édition -> remplir comme ci-dessous:

  1. Action : Démarrer un programme
  2. Programme/script : chemin d'accès à votre script batch, par exemple. C:\Users\beruk\bodo.bat
  3. Ajouter des arguments (facultatif) : <si nécessaire - en fonction de votre script>
  4. Démarrer dans (facultatif) : Indiquez le chemin d'accès complet à l'emplacement de votre script de traitement par exemple. C:\Users\beruk\ (Ne mettez pas de guillemets autour de Start In)

Puis cliquez sur OK

Ça marche pour moi. Bonne chance!

227
Ghazi

Aucune des méthodes ci-dessus n'a fonctionné. Je l'ai essayé de cette façon comme l'a dit dans un tutoriel et cela a fonctionné.

Action: démarrer un programme 

Programme/script: cmd

Ajouter des arguments:
/c start "" "E:\Django-1.4.1\setup.bat"  

Travaillé pour moi sur Win7 Pro. Vous devez avoir un compte avec un mot de passe (les mots de passe vides ne valent rien)

42
Arun Raja

Pour ceux dont les fichiers sont ne fonctionnent toujours pas dans le Planificateur de tâches de Windows 8+, j'aimerais ajouter quelque chose à la réponse de Ghazi - après de nombreuses souffrances:

1) Sous Actions, choisissez "Créer_ _ DE BASEtâche" et non "Créer une tâche".

Cela a été fait pour moi, sans oublier les autres problèmes à ne pas oublier:

  1. Utilisez le chemin Démarrer dans vers votre fichier de commandes, même s'il est facultatif 
  2. utilisez des guillemets, si nécessaire, dans votre Démarrer un programme> entrée de programme/script i.e "C:\mes scripts\runme.bat" ...
  3. MAIS NE PAS utiliser de guillemets dans votre champ de démarrage. (Fou mais vrai!)

Cela a fonctionné sans qu'il soit nécessaire de déclencher une invite de commande. 

(Désolé, mon représentant est trop faible pour ajouter mon conseil de tâche de base aux commentaires de Ghazi)

37
micstr

Assurez-vous que "Start In" n'a PAS DE CITATION.

19
Jonathan

Il fonctionne maintenant. C'est ce que j'ai fait. Vous n'aurez probablement pas besoin de toutes ces étapes pour le faire fonctionner mais juste pour être sûr de toutes les essayer:

  • Vérifiez les paramètres de compte de votre tâche planifiée et assurez-vous qu'ils sont configurés pour s'exécuter, que quelqu'un soit connecté ou non à la machine.

  • check run avec la plupart des privilèges/droits

  • Assurez-vous d’abord d’accéder au chemin complet: cd C:\inetpub\wwwroot\infoweb\factuur\cron

  • N'utilisez pas de guillemets dans vos fichiers batch (vous ne savez pas pourquoi, mais cela semble aider)

  • Soyez super admin, entrez 'Administrateur utilisateur net/actif: oui' dans la commande Invite, déconnectez-vous et connectez-vous en tant que super admin, afin que le contrôle de compte d'utilisateur soit désactivé

7
Ruben

Si un problème ne se produisait pas simplement parce qu'il fonctionnait sur un ordinateur portable sans cordon d'alimentation ... Dans l'onglet Conditions, il est par défaut vérifié de sorte qu'une tâche ne s'exécute pas tant que l'alimentation secteur n'est pas connectée.

5
Chriz

Je me suis planté avec cela pendant plusieurs heures et ai essayé beaucoup de suggestions différentes.

J'ai finalement réussi à le faire en procédant comme suit:

Action: démarrer un programme

Programme/Script: C:\scriptdir\script.bat

Ajouter des arguments (facultatif) script.bat

Démarrer dans (facultatif): c:\scriptdir

exécuter uniquement lorsque l'utilisateur est connecté

courir avec les plus hauts privilèges 

configurer pour: Windows Vista, Windows Server 2008

3
Robb

Sous Windows 7 Pro, j'ai découvert que la solution d'Arun fonctionnait pour moi: je pouvais le faire fonctionner même sans "utilisateur connecté", j'avais choisi d'utiliser les privilèges les plus élevés.

Par le passé, vous devez avoir un compte avec un mot de passe (les mots de passe vides ne valent rien), et si le programme ne vous invite pas à entrer le mot de passe à la fin de l'Assistant, revenez et éditez quelque chose jusqu'à ce qu'il le soit!

C'est la méthode au cas où ce n'est pas clair qui a fonctionné

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
Bruce Metelerkamp

Assurez-vous que "Start In" ne se termine PAS par un BACKSLASH.

2
Michael Kehoe

Si tout le reste échoue pour vous ici, assurez-vous que l'utilisateur que vous essayez d'exécuter, a accès au fichier que vous essayez d'utiliser.

Dans mon cas, j'essayais d'exécuter un fichier de commandes à partir de C:\Utilisateurs\Administrateur\Bureau auquel le compte ne pouvait pas accéder. Le déplacer vers un emplacement neutre sur C:\a résolu le problème.

2
Vince
  1. N'utilisez pas de guillemets dans votre fichier cmd/batch
  2. Assurez-vous d’accéder au chemin complet start in (facultatif):
    C:\Necessary_file\Reqular_task\QDE\cmd_practice \

 enter image description here

1

Veuillez vérifier le compte d'utilisateur que vous utilisez pour exécuter notre tâche. Il se peut que vous exécutiez votre tâche avec un utilisateur différent de votre utilisateur par défaut, et que cet utilisateur nécessite des privilèges supplémentaires . Il peut également arriver que la tâche soit exécutée mais que vous ne voyez aucun effet car le fichier de commandes attend un utilisateur. réponse donc veuillez vérifier le gestionnaire de tâches si vous voyez votre processus en cours d'exécution . Une fois que j'ai planifié un lot avec la mise à jour svn d'une page Web et que le processus se bloque parce que svn a demandé d'accepter le certificat de serveur.

1
user6039542

L'utilisation du bouton Exécuter dans la fenêtre principale du Planificateur de tâches pour tester plusieurs variantes a finalement permis de trouver les paramètres corrects. Ces deux options doivent être combinées: - Exécuter uniquement lorsque l'utilisateur est connecté - Exécuter avec les privilèges les plus élevés . Toutes les autres variantes ont échoué. C’est tout le temps perdu, mais au moins ça marche . OS: VERSION WINDOWS 8 CORE (BASE)

0
sapitron

Essayez d'exécuter la tâche avec des privilèges élevés.

mettre un\à la fin du chemin dans "démarrer dans le dossier" tel que c:\temp \

Je ne sais pas pourquoi, mais ça marche parfois pour moi.

0
C Jee