web-dev-qa-db-fra.com

Le lot s'exécute manuellement mais pas dans la tâche planifiée

Je n'écris généralement pas batches, mais j'ai actuellement une batch qui utilise forfiles pour copier mes fichiers FLV d'un dossier à un autre. Lorsque j'exécute le lot manuellement, il fonctionne à chaque fois, mais à partir d'une tâche planifiée, une erreur (0x1) est générée.

forfiles -p "C:\Program Files\Adobe\Flash Media Server 4.5\applications\name\streams" -m *.flv -s -d -1 -c "cmd /c copy @file ^0x22C:\Program^ Files\Adobe\Flash^ Media^ Server^ 4.5\applications\name\output\"

Vous ne savez pas quelle syntaxe la tâche planifiée n'aime pas.

Mettre à jour

Sous ma tâche planifiée, Actions I sont les suivantes:

Program/script:  name.bat
Start in (optional): \\servername\file\to\batch
5
zach attack

Lorsque mon chemin Start in (optional): était un chemin UNC, cela ne fonctionnerait pas. J'ai donc déplacé mon lot sur le serveur et tout a fonctionné correctement.

UNC dans les fichiers batch Windows

forfiles avec le chemin UNC

3
zach attack

Bonjour, c'est peut-être utile, je suis également confronté au même problème. Il suffit de définir le chemin de départ comme:

 enter image description here

Ici, commencez dans chemin est le chemin du fichier de commandes: comme vous avez entré dans le script de programme: "E:\fichiers liés au programme\demo.bat", puis dans startin, passez: E:\fichiers liés fichiers & done!

Merci

Arun Sharma

3
Arun Sharma

Voir la capture d'écran ci-dessous. Vous devez changer l'utilisateur en systèmeenter image description here

2
Gil Allen

Pour que les fichiers .bat s'exécutent dans votre tâche planifiée, vous devez spécifier votre chemin d'accès au fichier .bat dans l'option de démarrage, même si votre fichier .bat se trouve dans le même répertoire que votre fichier .exe. En outre, je l'ai signalé pour qu'il fonctionne avec les privilèges les plus élevés. Après avoir fait ces deux choses, la tâche décolle subitement sans aucun problème!

 windows schedule task picture

0
Jenna Leaf

Je sais que c'est une vieille question, mais je voulais juste partager quelques informations.

Le code (0x01) error peut également faire référence à des ressources introuvables. Donc:

  • tous les fichiers/dossiers référencés à partir du fichier de commandes doivent être accessibles à l'utilisateur pour lequel le compte est utilisé pour exécuter cette tâche planifiée;
  • faites attention lorsque vous utilisez des emplacements réseau en combinaison avec l'option "Exécuter si l'utilisateur est connecté ou non";
  • l’option susmentionnée peut être délicate à utiliser car certaines ressources ne sont disponibles qu’après la connexion.
0
Yeseanul

Les autorisations sont la raison la plus courante de ce type de problèmes: les tâches planifiées ne s'exécutent toujours pas avec ET avec vos informations d'identification d'utilisateur. Si vous voulez que la tâche planifiée soit exécutée comme vous, vous devrez la configurer comme vous ou comme autre utilisateur.

Outre que j'espère que votre ligne de code est un contenu de votre fichier de commandes, vous n'essayez pas d'exécuter cette commande directement. Ou es-tu?

P.S. Que font ces ^0x22 et ^ dans votre code?

0
Germann Arlington

Sur Server 2008 R2 lors de l'exécution du fichier de commandes sous les informations d'identification de l'utilisateur du domaine, avec la sécurité confirmée de la "connexion en tant que tâche par lots" dans la stratégie de sécurité locale> Paramètres locaux> Attribution des droits de l'utilisateur, même dans le cas contraire partage) ne serait pas exécuté comme tâche planifiée, jusqu'à ce que je sélectionne dans l'onglet Général l'option " Exécuter avec les privilèges les plus élevés " (NON coché par défaut!) L'option Exécuter si l'utilisateur est connecté or not a également été sélectionné, avec un bouton radio, mais j’imagine qu’il s’agit d’un processus assez classique lorsque vous choisissez d’exécuter la tâche à l’aide d’un compte utilisateur de domaine.

Pour l'onglet Actions: spécifier le nom complet du fichier de commandes, y compris son chemin, directement dans "Programme/script:" fonctionne correctement (avec Server 2008 R2) L'utilisation de guillemets doubles dans le fichier de commandes ne pose aucun problème.

0
RedRooster