Lancer des .bat depuis un .bat mais...
Fermé
oli_a42
Messages postés
11
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 août 2012
-
3 avril 2011 à 23:30
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 - 4 avril 2011 à 16:26
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 - 4 avril 2011 à 16:26
A voir également:
- Lancer des .bat depuis un .bat mais...
- Fichier bat - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Lancer un fichier bat au démarrage de windows 10 ✓ - Forum Autoit / batch
- Lancer un programme au demarrage - Guide
- Bat powershell ✓ - Forum PowerShell
2 réponses
dg_belmontet
Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
128
3 avril 2011 à 23:53
3 avril 2011 à 23:53
Bonsoir,
Un des moyens le plus simple est de mettre votre fichier .bat principal sur une autre partition du disque dur ou encore sur un support externe comme une clé USB (ou disquette si elle existe encore) et dans votre commande vous définissez l'endroit ciblé des fichiers .bat :
FOR /F %%A IN ('DIR /B /S C:\*.bat') do call %%A
Bon courage.
Un des moyens le plus simple est de mettre votre fichier .bat principal sur une autre partition du disque dur ou encore sur un support externe comme une clé USB (ou disquette si elle existe encore) et dans votre commande vous définissez l'endroit ciblé des fichiers .bat :
FOR /F %%A IN ('DIR /B /S C:\*.bat') do call %%A
Bon courage.
dg_belmontet
Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
128
4 avril 2011 à 16:26
4 avril 2011 à 16:26
Bonjour Oli_a42,
Votre petit problème me tient à coeur et d'après mes souvenirs de syntaxe de batch voici 2 solutions :
1) La plus simple...
Si vous ne voulez traiter que des fichiers .bat, il suffit que votre batch principal ait l'extension .cmd (c'est toujours un batch) et de cette façon il ne sera pas pris en compte dans la commande DIR (donc pas de boucle infinie).
2) La 2ème solution, la plus professionnelle.... mais plus complexe
Il suffit de faire une exclusion du nom de votre batch "Principal" dans un fichier qui comprendra le résultat de la commande DIR. Voici un exemple que j'ai testé et qui fonctionne :
@Echo Off
Rem Définir dans la variable "File" le nom du script principal qui ne doit pas être traité
Set File=Principal.bat
Rem On récupère le résultat de la commande DIR dans le fichier result.txt
Rem et on supprime la ligne correspondant au nom du script Principal.bat
Dir /b /s *.bat | findstr /I /V "%file%" > result.txt
If not exist result.txt Goto Error
Rem Boucle FOR pour appeler tous les .bat contenus dans le fichier Result.txt
FOR /F %%A IN (result.txt) do call %%A
Goto FIN
:Error
Cls
Echo.
Echo.
Echo Erreur: Impossible de créer le fichier Result.txt ou aucun Batch...!!!
Echo.
:FIN
Set File=
If exist Result.txt Del Result.txt > nul
*************************************************
Cette fois-ci cela devrait fonctionner mais attention à la syntaxe.
Bon courage et dites-moi si cela vous convient.
Votre petit problème me tient à coeur et d'après mes souvenirs de syntaxe de batch voici 2 solutions :
1) La plus simple...
Si vous ne voulez traiter que des fichiers .bat, il suffit que votre batch principal ait l'extension .cmd (c'est toujours un batch) et de cette façon il ne sera pas pris en compte dans la commande DIR (donc pas de boucle infinie).
2) La 2ème solution, la plus professionnelle.... mais plus complexe
Il suffit de faire une exclusion du nom de votre batch "Principal" dans un fichier qui comprendra le résultat de la commande DIR. Voici un exemple que j'ai testé et qui fonctionne :
@Echo Off
Rem Définir dans la variable "File" le nom du script principal qui ne doit pas être traité
Set File=Principal.bat
Rem On récupère le résultat de la commande DIR dans le fichier result.txt
Rem et on supprime la ligne correspondant au nom du script Principal.bat
Dir /b /s *.bat | findstr /I /V "%file%" > result.txt
If not exist result.txt Goto Error
Rem Boucle FOR pour appeler tous les .bat contenus dans le fichier Result.txt
FOR /F %%A IN (result.txt) do call %%A
Goto FIN
:Error
Cls
Echo.
Echo.
Echo Erreur: Impossible de créer le fichier Result.txt ou aucun Batch...!!!
Echo.
:FIN
Set File=
If exist Result.txt Del Result.txt > nul
*************************************************
Cette fois-ci cela devrait fonctionner mais attention à la syntaxe.
Bon courage et dites-moi si cela vous convient.
4 avril 2011 à 09:03
Je vais continuer mes recherches mais je crains qu'il n'y ait pas une solution simple.
Merci encore
Bonne journée
Oli_a42