1 votes

Le fichier batch continue d'exécuter la commande après que le planificateur de tâches l'ait arrêté.

J'ai une tâche planifiée qui fonctionne à 00:00 qui ouvre un .bat contenant un robocopy avec la tâche réglée pour s'arrêter au bout de 4 minutes, et pour forcer l'arrêt si elle ne se termine pas quand on le lui demande.

Il semble que la commande d'arrêt du planificateur de tâches soit ignorée jusqu'à ce que la robocopy La commande se termine, ce qui me semble aller à l'encontre du but recherché. Y a-t-il un moyen de contourner ce problème ?

  • Le message attendu se trouve dans l'historique à l'adresse suivante 00:04 mais le fichier de sortie de robocopy continue à courir pendant 4 minutes supplémentaires, ne s'arrêtant qu'à 00:08 :

    Le planificateur de tâches est terminé {uuid} instance de la Taskname en raison du dépassement du temps alloué pour l'exécution, tel que configuré dans la définition de la tâche.
    Action de l'utilisateur : Augmentez le délai d'exécution de la tâche configurée ou recherchez les raisons externes du retard.

  • Il existe d'autres commandes dans le .bat mais le fichier robocopy est celle qui était en cours d'exécution au moment où le planificateur a essayé d'arrêter la tâche, la commande qui la suit n'étant pas en cours d'exécution :

     MkDir "C:\Destination\Folder"
       RoboCopy "C:\Source\Folder" "C:\Destination\Folder" /MOV /IS /S /R:0 /LOG:"C:\output.txt"
       RmDir "C:\Destination\Folder" /s /q

1voto

programmer365 Points 1

@JW0914 dit vrai :

Je crois que c'est un comportement normal, car la tâche et le script sont deux entités distinctes - alors que la tâche lance le script, le script n'est pas la tâche, donc il devrait s'exécuter jusqu'à la fin indépendamment de la tâche elle-même. (du moins, c'est l'expérience que j'ai eue en lançant un projet de création d'entreprise). RoboCopy script dans le planificateur de tâches) . Les documents Microsoft pour le planificateur de tâches doivent être référencés. (IIRC, la tâche elle-même garnit script d'achèvement ou d'erreurs à partir d'un événement dans l'Observateur d'événements, bien que je puisse me tromper de souvenir).

Ici, nous pouvons contourner ce comportement, puisqu'il s'agit d'une simple robocopy sans aucune syntaxe de lot, en utilisant la commande Créer une tâche de base sans créer le fichier batch :

  1. Ouvrir le planificateur de tâches Créer Créer une tâche de base

  2. Nommez la tâche et définissez la description

  3. Définir le déclencheur

  4. Choisir le moment

  5. Action Exécuter un programme :

    • Programme/script : C:\Windows\System32\robocopy.exe
    • Arguments :

      "C:\Source\Folder" "C:\Destination\Folder" /MOV /IS /S /R:0 /log:"C:\output.txt"
  6. Finition

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X