Variable non stocker dans une double boucle for

Résolu/Fermé
bentop Messages postés 42 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 15 septembre 2015 - Modifié par bentop le 15/09/2015 à 12:23
bentop Messages postés 42 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 15 septembre 2015 - 15 sept. 2015 à 12:43
Bonjour à tous,

Je cherche à développer un petit script me permettant de compter le nombre de ligne de tous les fichiers .txt d'un dossier et les copier dans un autre répertoire s'il n'y a pas le bon nombre de ligne.

J'utilisais déjà une boucle for fonctionnant correctement pour compter le nombre de ligne d'un fichier (que j'ai réinjecter dans le code) cependant pour effectuer ma copie j'ai besoin des noms de chaque fichier, voici comment se présente mon code :


setlocal enableDelayedExpansion

SET fichier=%%~nxi
SET Dossier="c:\monchemin"


for /r "%Dossier%" %%i in (*.txt) do (
SET /A COUNT=1
FOR /F "tokens=*" %%A IN (%dossier%\%fichier%) do (
SET /A COUNT+=1


echo "boucle 1"
echo %COUNT%
)


if %COUNT% NEQ 2 (COPY %Dossier%\%fichier% G:\result\%fichier%)

echo "boucle 2"
echo %COUNT%

)




echo "fin boucle"
echo %COUNT%


pause
endlocal


Le code semble fonctionner correctement quand je fais des tests, cependant le résultat final n'est pas convainquant. En effet, mon problème est que ma variable %COUNT% est vide lorsqu'elle est placée dans mes boucles. Dans mon cas je voudrais l'utiliser au niveau de mon "echo "boucle 2"".
A savoir ma variable %COUNT% ne ressort quand fin des deux boucles et je ne comprends pas pourquoi.

Sans la première boucle FOR qui me donne les noms de fichier, la variable %COUNT% n'est plus vide lorsque je la met en dehors de la boucle.

Dans l'espoir que vous puissiez m'éclairer.
Merci par avance.
Amicalement Ben.
A voir également:

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 15/09/2015 à 12:23
hello
pour utiliser une variable dans une boucle, il faut ! à la place de %
echo !COUNT!
1
bentop Messages postés 42 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 15 septembre 2015 4
15 sept. 2015 à 12:43
Super ! ça fonctionne merci beaucoup ! :)
0