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.
Vous devez vous connecter pour publier un commentaire.
Lucero est droit.
Exemple de code:
%%a
de la valeur à toutes les variable de boucle? Juste ne peux pas l'atteindre pendant des heuresVous pouvez avoir besoin d'utiliser retardé l'expansion des variables d'environnement. Voir CMD /? pour plus d'aide à ce sujet:
...
Voulais juste ajouter que la clé de l'utilisation d'une expansion retardée référence à la variable à l'aide de la !var! syntaxe rapport à %var%. Mieux que je peux dire en XP expansion retardée est activé par défaut, il vous suffit de référence de la var à l'aide !. Qui fixe ma boucle. Trouvé ça dans les cités par les autres affiches:
Permettre retardé l'expansion des variables d'environnement à l'aide ! comme l'
délimiteur. Par exemple, /V:SUR permettrait de !var! pour développer la
variable var au moment de l'exécution. La syntaxe var développe les variables
au moment de l'entrée, ce qui est tout autre chose quand à l'intérieur d'une
de la boucle.
J'ai négligé l' !! peu au début.