Exécuter un fichier batch avec le planificateur de tâches Windows
J'ai un fichier batch tous les jours.chauve-souris, c'est le code:
cd C:inetpubwwwrootinfowebfactuurcron
c:PHPphp.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 je lance le lot manuellement, tout va bien, mais quand j'essaie de l'exécuter avec le planificateur de tâches, rien ne se passe.
Mon action est
'run script' "C:inetpubwwwrootsitexcrondaily.bat"
UAC est désactivé et je suis administrateur.
Une idée de pourquoi cela ne fonctionne pas?
14 réponses
J'ai fait face au même problème, mais j'ai trouvé une autre solution sans avoir à modifier mon script batch.
La seule chose que j'ai manquée est dans les paramètres' Action ' - "Start in (Optional)" option.
Allez dans les propriétés de la tâche - > onglet Action - > modifier - > remplir comme ci-dessous:
- Action : Démarrer un programme
-
Programme/script: chemin d'accès à votre script batch par exemple
C:\Users\beruk\bodo.bat
- Ajouter des arguments (optionnel) :
-
Start in (facultatif) : placez le chemin complet vers l'emplacement de votre script batch, par exemple
C:\Users\beruk\
(Ne mettez pas de guillemets autour de Start In)
Puis cliquez sur OK
Ça marche pour moi. Bonne chance!
Aucune des méthodes ci-dessus n'a fonctionné. J'ai essayé de cette façon comme l'a dit elle 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 sont pas bons)
Pour ceux dont les fichiers bat sont ne fonctionnent toujours pas dans Windows 8 + Task Scheduler, une chose que je voudrais ajouter à la réponse de Ghazi-après beaucoup de souffrance:
1) sous Actions, choisissez " Créertâche de base ", pas "créer une tâche"
Cela l'a fait pour moi, plus les autres problèmes à ne pas oublier:
- utilisez le chemin Start dans vers votre fichier batch, même s'il indique optionnel
- utilisez des guillemets, si vous en avez besoin, dans votre programme Démarrer > entrée de programme/script, c'est-à-dire "C:\my scripts \ runme.chauve" ...
- mais N'utilisez pas de guillemets dans votre champ Start in. (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)
Ça marche 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 que tout 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
-
Vérifier exécuter avec la plupart des privilèges / droits
-
Assurez-vous d'aller d'abord au chemin complet: cd C:\inetpub\wwwroot\infoweb\factuur\cron
Ne pas utiliser double citations dans vos fichiers batch (je ne sais pas pourquoi mais semble aider)
-
Soyez super admin, entrez 'net user administrator / active: yes' dans l'invite de commande, déconnectez-vous et connectez-vous en tant que super admin, donc UAC est désactivé
Avait un problème où ma tâche ne se déclenchait pas simplement parce qu'elle fonctionnait sur un ordinateur portable sans cordon d'alimentation... Sous l'onglet conditions, par défaut, il est coché afin qu'une tâche ne s'exécute pas lorsque L'alimentation secteur N'est pas connectée.
Sous Windows7 Pro, j'ai trouvé que la solution D'Arun fonctionnait pour moi: je pouvais le faire fonctionner même avec "aucun utilisateur connecté", j'ai choisi d'utiliser les privilèges les plus élevés.
D'après l'expérience passée, vous devez avoir un compte avec un mot de passe (les mots de passe vides ne sont pas bons), et si le programme ne vous demande pas le mot de passe lorsque vous avez terminé l'Assistant, revenez et modifiez quelque chose jusqu'à ce qu'il le fasse!
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"
J'ai foiré avec cela pendant plusieurs heures et essayé beaucoup de suggestions différentes.
J'ai finalement réussi à le faire en faisant ce qui suit:
Action: Démarrer un programme
Programme / Script: C:\scriptdir\script.MTD
Ajouter des arguments (facultatif) script.MTD
Début dans (facultatif): c:\scriptdir
Exécuter uniquement lorsque l'utilisateur est connecté
Exécuter avec les privilèges les plus élevés
Configurer pour: Windows Vista, Windows Server 2008
Assurez-vous que "Start In" ne se termine pas par une barre oblique inverse.
Si tout le reste échoue ici pour vous assurer que l'utilisateur que vous essayez d'exécuter la tâche a accès au fichier que vous essayez d'utiliser.
Dans mon cas, j'essayais d'exécuter un fichier batch à partir de C:\Users\Administrator\Desktop auquel le compte n'a pas pu accéder. Le déplacer vers un emplacement neutre sur C: \ a résolu le problème.
Veuillez vérifier quel compte d'utilisateur vous utilisez pour exécuter notre tâche. Il peut arriver que vous exécutiez votre tâche avec un utilisateur différent de votre utilisateur par défaut, et cet utilisateur nécessite des privilèges supplémentaires. En outre, il peut arriver que la tâche soit exécutée, mais vous ne pouvez pas voir d'effet car le fichier batch attend une réponse de l'utilisateur, alors vérifiez le Gestionnaire des tâches si vous voyez votre processus en cours d'exécution. Une fois qu'il arrive que je planifie un lot avec svn mise à jour d'une page web et le processus se bloque parce que svn a demandé accepter le certificat du serveur.
- n'utilisez pas de guillemets doubles dans votre fichier CMD/batch
- assurez-vous d'aller pour le chemin d'accès complet démarrer (facultatif):
C:\Necessary_file\Reqular_task\QDE\cmd_practice\
En utilisant le bouton Exécuter dans la fenêtre principale du Planificateur de tâches pour tester plusieurs variantes finalement trouvé les paramètres corrects. Ces deux options doivent être combinées: -Exécuter uniquement lorsque l'utilisateur est connecté - Courir avec les privilèges les plus élevés. Toutes les autres variations ont échoué. C'est exaspérant tout le temps perdu à ce sujet, mais au moins cela fonctionne. OS: WINDOWS 8 CORE (DE BASE) VERSION
Essayez d'exécuter la tâche avec des privilèges élevés.
Mettez un \ à la fin du chemin dans "Démarrer dans le dossier" tel que c:\temp\
Je ne sais pas pourquoi, mais cela fonctionne parfois pour moi.