CMD Pour Boucle ne pas tenir set /une valeur

Ne savais pas comment expliquer ce bien, alors voici le code

@echo off
set test=0

for /f %%a in (textfile.txt) do (
rem loops five times(5 lines in textfile.txt)

set /a test=test+1
rem Adds 1 to Test

echo %%a
rem Echo's correct line in file

echo %test%
rem Echo's whatever X was before the loop

)

echo %test%
rem Displays the correct value of X

pause

c'est juste un exemple de là où je viens de trouver le problème, txtfile.txt a 5 lignes, de sorte que la boucle for va 5 fois, à chaque fois, un test est +1, et l' /a affiche la valeur de X, mais le dernier écho sur la boucle affiche 0, qui est ce que l'essai est fixée à l'avant de la boucle.

La valeur de test est de ne pas changer jusqu'à ce que la boucle est fini... est-il possible de résoudre ce problème?

Voici ce que je veux accomplir, il y a peut-être un moyen plus simple: je veux exécuter une boucle findstr de tous les rtf en une série de sous-dossiers, et des copies de tous à tout un répertoire avec un nouveau nom, 1.rtf,2.rtf,3.rtf, etc. La raison j'ai besoin de les renommer sur le transfert, c'est qu'ils ont tous le même nom.

InformationsquelleAutor | 2009-06-11