Dos : Effectuer une boucle de détection en ajoutant un compteur

Résolu
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   -  
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis actuellement confronté au problème suivant :
Mon script doit se lancer à la condition que dans le dossier %toto% je trouve deux fichiers commençant par RES*
Si ce n'est pas le cas, le script revient sur wait, relançant le processus de détection.
Voici le script :
@REM Lancement de l'exit a la condition que les deux fichiers soient presents
:wait
set /a nbFichiers=0
for %a in (%toto%\RES*) do set /a nbFichiers+=1
if not %nbFichiers%==2 goto wait
@REM Traitement
.....

Voici mon problème :
je voudrait que cette boucle de détection s'opère un nombre limité de fois (par exemple pas plus de dix fois)
j'imagine que je dois ajouter un compteur quelquepart ?
Quelqu'un pourrait-il m'aider à résoudre cette problématique ?
Merci par avance.
K
A voir également:

4 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
mettre le code dans une boucle
for /L %%a in (1,1,10) do (
le code ici
)
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Dubcek,
As-tu une idée comment je pourrais intégrer mon code dans la boucle que tu proposes ?
Merci.
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Dubcek,
Tu veux dire comme ça ? :
for /L %%a in (1,1,10) do (
set /a nbFichiers=0
for %a in (%toto%\RES*) do set /a nbFichiers+=1
if %nbFichiers%==2 goto traitement
)
:traitement

Désolé, je suis un médiocre en dos ...
0
ryko1820 Messages postés 1677 Date d'inscription   Statut Membre Dernière intervention   276
 
Hello,

déjà si tu mets ton "set /a nbFichiers=0" là, il sera remis à 0 à chaque itération de la première boucle ... :-)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
que veux tu faire 10 fois ?
for /L %%a in (1,1,10) do (
  set /a nbFichiers=0
  for %%b in (%toto%\RES*) do set /a nbFichiers+=1
  if %nbFichiers% EQU 2 goto traitement
)
goto xxx
:traitement
ca va aller très vite
j'ai ajouté goto xxx sinon à la fin de la boucle, il va exécuter :traitement
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Je veux contrôler la présence de deux fichiers RES*
Ces fichiers arrivent dans le répertoire %toto% alléatoirement.
Je désire que mon traitement se déclenche uniquement si il y a détection des deux fichiers.
Le contrôle peut tourner 10 fois ou même 100 fois.
L'idée c'est d'avoir un mode de détection qui tourne pendant environs 5mn.

Par contre, je n'ai pas compris l'ajout du goto xxx ?
0
ryko1820 Messages postés 1677 Date d'inscription   Statut Membre Dernière intervention   276
 
"goto xxx" c'est parce que même si le batch trouve pas les fichiers il exécutera le traitement ":traitement" en fin de boucles, tu dois donc mettre un étiquette ":xxx" après tes traitement (ou peut importe le nom)

Sinon ton "set /a nbFichiers=0" tu l'as mis quand même ? (même si il doit pas être dans les boucles, faut le mettre avant ...)
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Ah oui je comprends !
je peux mettre "goto FIN" par exemple ?
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Ok donc je procède comme ça ? :
for /L %%a in (1,1,10) do (
for %a in (%toto%\RES*) do set /a nbFichiers+=1
if %nbFichiers%==2 goto traitement
)
:traitement
0
ryko1820 Messages postés 1677 Date d'inscription   Statut Membre Dernière intervention   276
 
Jsais pas, ptete bien ... Si tu veux voir ce qui se passe dans ta deuxieme boucle tu mets un "echo nbFichiers = %nbFichiers%" dans ta boucle et tu lances ...
Tu verras bien si ça marche.

(Jsuis sous Linux)
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Je viens de le tester, manifestement ça ne fonctionne pas.
Le processus tourne 10x même si les deux fichiers sont présents.
Il y a certainement quelquechose que je n'ai pas compris...
0
Ka-El Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour messieurs et merci beaucoup pour votre aide.
Mon script fonctionne maintenant grace à vous !
Bonne continuation et à bientôt.
K
0