J'essaie d'itérer une chaîne en script de lot: et obtenir cette sortie: p> Je pense que tous les 3 Les numéros seront imprimés: p> Qu'est-ce que je fais mal? p> p>
3 Réponses :
Essayez pour code> à la place de
pour / f code>. En outre, citant la valeur lors de la réglage
var code> est inutile:
@Ed, je veux itération de la chaîne, délimitée par des espaces hâte, donc je suppose que la citation est nécessaire
@Alvin, Joey - Avez-vous essayé mon exemple? (Bien que vous ayez raison, / d est inutile)
@ ks1322 - La citation n'est pas nécessaire dans les scripts de lots - L'espace est le délimiteur par défaut (d'où vous devez citer les chemins de système de fichiers contenant des espaces)
C'est parce que pour / F divise une ligne de chaque ligne dans plusieurs jetons, mais vous devez définir le nombre de jetons que vous souhaitez traiter. Comme la réponse de Ed Harper:
Vous pouvez également utiliser une boucle normale pour la boucle, avec la limitation qui tentera également de Serach pour des fichiers sur le disque, et il a des problèmes avec * code> et
? Code>. P>
setlocal EnableDelayedExpansion
set LF=^
set "var=1 2 3 4 5"
set "var=%var: =!LF!%"
for /F %%i in ("!var!") do (
echo %%i
)
C'est le plus proche de ce que je veux. Le seul inconvénient est que je ne sais pas à l'avance le nombre de jetons - c'est une entrée utilisateur. Je suppose que cela peut être corrigé en choisissant une valeur égale à une taille de liste de jetons maximale telle que "jetons = 1-10" code>.
@ ks1322 Vous pouvez également utiliser la technique de ligne de ligne
parce que Vous devez utiliser Si vous souhaitez boucler des numéros, utilisez ce qui suit: p> pour / f code> boucle chaque ligne d'un fichier texte, et lorsqu'il est utilisé avec une chaîne (
"" " code> cité), il ne fait que des choses sur cette ligne. Il fait em> délimit par blanchiment, mais qui doit être utilisé avec l'option
jetons code>.
pour code> p> < Pré> xxx pré>