2017-08-22 4 views
0

J'ai un fichier batch faire une boucle qui ressemble à quelque chose comme ceci:Pour boucle dans le fichier batch d'arrêt unwantedly

for /f %%F in ("%DIR%\*.xml") do something.exe --Option1=Value1 --Option2=Value2 ... --File="%%~fF" 

où « quelque chose » est une boîte noire n'appartient pas (ne savent pas comment cela fonctionne , ne peut pas être modifié) qui effectue certaines opérations. Cela fonctionne correctement et renvoie un message «terminé avec succès», mais pour certaines raisons, il oblige ma boucle for à s'arrêter et exécute la ligne suivante de mon fichier de commandes sans effectuer l'opération pour tous les autres fichiers.

Y a-t-il un moyen de le forcer à continuer et à ne pas quitter la boucle for?

+0

'noir box' - Voulez-vous dire par Invite de commandes. – SteveFest

+3

Supprimez le '/ f' dans la commande' for'. Vous voulez itérer sur un ensemble de fichiers, ne pas lire le contenu d'une liste de fichiers ni traiter une seule chaîne (ce que vous faites dans votre code) –

Répondre

0

Il semble que vous souhaitez parcourir les noms de fichier, supprimez l'indicateur /f.

for %%G in ("%DIR%\*.xml") do ... 

Depuis votre programme doSomething se termine après avoir terminé son travail, vous aurez besoin pour commencer la doSomething sur un processus distinct.

simplement changer doSomething "%%~fF" à

start "" programName "%%~fF"