Arrêter l'exécution d'un batch
Fermé
mic13710
Messages postés
1088
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
-
Modifié par mic13710 le 20/02/2015 à 10:08
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 20 févr. 2015 à 13:07
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 20 févr. 2015 à 13:07
A voir également:
- Arrêter l'exécution d'un batch
- Fichier batch - Guide
- Erreur d'execution 1004 ✓ - Forum Excel
- Erreur d'éxecution 1004 - Forum Programmation
- Erreur d'exécution 1004 ✓ - Forum Excel
- Erreur d'execution 13 ✓ - Forum Programmation
2 réponses
mic13710
Messages postés
1088
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
352
20 févr. 2015 à 11:33
20 févr. 2015 à 11:33
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
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 ?
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 offWindows 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.
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
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 ?
mic13710
Messages postés
1088
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
352
20 févr. 2015 à 13:07
20 févr. 2015 à 13:07
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.
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 offJe 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 ?
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