Arrêter l'exécution d'un batch

Bonjour,

Je souhaite créer par vba un fichier batch temporaire incorporant un timer pour pouvoir retarder une tâche pendant une durée assez longue, mettons 2 minutes.
Une fois le batch lancé par une commande shell, je voudrais pouvoir le supprimer si besoin pour annuler l'exécution de la tâche avant qu'elle ne soit lancée.
Est-ce que c'est possible et qu'elles peuvent-être les conséquences ?
Sinon, comment faire par vba pour arrêter l'exécution d'un batch ?

D'avance merci pour vos réponses



Michel

2 réponses

  1. J'ai un peu creusé le sujet et je pense avoir trouvé une solution :
    Plutôt que de vouloir supprimer le .bat, Il suffit de créer un fichier annexe qui servira de témoin.
    Si durant l'exécution du batch le témoin est supprimé, alors la tâche est annulée par un goto exit.

    Ca devrait marcher, seulement voilà, j'ai un souci pour faire fonctionner mon batch
    echo off
    echo xx > "chemin de mon fichier\nom du fichier témoin"
    PING 1.1.1.1 -n 1 -w 60000 >NUL
    if not exist "chemin de mon fichier\nom du fichier témoin" goto exit
    del /q /f "chemin de mon fichier\nom du fichier témoin"
    del /q /f "chemin de mon fichier\nom du fichier que je veux supprimer"
    :exit
    Windows me dit à la première instruction que le chemin du fichier est introuvable alors que c'est bien un chemin valide et que j'ai mis toutes les adresses entre guillemet.
    En fait, il y a des accents dans le chemin de fichier, et comme le batch a été généré sous windows par VBA, DOS ne les comprend pas et les remplace pas des signes bizarres.

    Il semblerait qu'en éditant le fichier sous dos, on puisse remplacer les lettres accentuées par les mêmes lettres accentuées qui seront correctement interprétées, mais c'est mission impossible pour un fichier éphémère et qui sera forcément différent pour chaque machine.

    Comme je ne peux pas changer les noms des dossiers, y aurait-il une solution pour que les accents générés sous windows soient reconnus sous dos ?

    1. Après recherche, j'ai trouvé une piste intéressante dans ce sujet
      https://forums.commentcamarche.net/forum/affich-27503289-batch-files-et-caracteres-accentues
      Effectivement en leurrant le cmd, ça résout le problème des accents et mon code fonctionne.
      echo off
      chcp 1252
      echo xx > "chemin de mon fichier\nom du fichier témoin"
      PING 1.1.1.1 -n 1 -w 60000 >NUL
      if not exist "chemin de mon fichier\nom du fichier témoin" goto fin
      del /q /f "chemin de mon fichier\nom du fichier témoin"
      del /q /f "chemin de mon fichier\nom du fichier que je veux supprimer"
      :fin
      chcp 850
      exit
      Je me pose la question de savoir si chcp 1252 est toujours le même quelle que soit la version windows ou bien est-ce qu'il peut être différent. Et dans ce cas est il possible au moyen d'un code vba de connaitre le code utilisé par le poste pour pouvoir l'inclure dans le batch ?