Quelle est la syntaxe d'une boucle FOR dans un fichier batch Windows?
FOR %%A IN (list) DO command parameters
list est une liste d'éléments quelconques, séparés par des espaces, des virgules ou des points-virgules.
commande peut être toute commande interne ou externe, fichier batch ou même - sous OS/2 et NT - une liste de commandes
parameters contient les paramètres de ligne de commande pour command. Dans cet exemple, la commande sera exécutée une fois pour chaque élément de la liste, en utilisant des paramètres, le cas échéant.
Un type spécial de paramètre (ou même de commande) est %% A, qui sera remplacé successivement par chaque élément de la liste.
De boucles FOR
Si vous voulez faire quelque chose x fois, vous pouvez le faire:
Exemple (x = 200):
FOR /L %%A IN (1,1,200) DO (
ECHO %%A
)
1,1,200
signifie:
Type:
for /?
et vous obtiendrez plusieurs pages de texte d'aide.
Effectuer conditionnellement une commande plusieurs fois.
syntax-FOR-Files
FOR %%parameter IN (set) DO command
syntax-FOR-Files-Rooted at Path
FOR /R [[drive:]path] %%parameter IN (set) DO command
syntaxe-FOR-Folders
FOR /D %%parameter IN (folder_set) DO command
syntax-FOR-List of numbers
FOR /L %%parameter IN (start,step,end) DO command
syntax-FOR-File contenu
FOR /F ["options"] %%parameter IN (filenameset) DO command
ou
FOR /F ["options"] %%parameter IN ("Text string to process") DO command
syntax-FOR-Command Results
FOR /F ["options"] %%parameter IN ('command to process') DO command
Il
%%G
égal à une partie de ces donnéesSi vous utilisez la commande FOR sur la ligne de commande plutôt que dans un programme de traitement par lots, utilisez uniquement le signe de pourcentage: %G
au lieu de %%G
.
Paramètres FOR
Le premier paramètre doit être défini avec un seul caractère, par exemple la lettre G.
FOR %%G IN
...
À chaque itération d'une boucle FOR, la clause IN ( ....)
est évaluée et %%G
défini sur une valeur différente.
Si cette clause donne une valeur unique, alors %% G est égal à cette valeur et la commande est exécutée.
Si la clause aboutit à plusieurs valeurs, des paramètres supplémentaires sont définis implicitement pour les contenir. Ceux-ci sont automatiquement attribués dans l'ordre alphabétique %%H %%I %%J
... (définition implicite de paramètre)
Si le paramètre fait référence à un fichier, la référence de variable améliorée peut être utilisée pour extraire le nom de fichier/chemin/date/taille.
Vous pouvez bien sûr choisir n'importe quelle lettre de l'alphabet autre que %%G
. mais c'est un bon choix car il n'entre en conflit avec aucune des lettres de format de chemin d'accès (a, d, f, n, p, s, t, x) et fournit la plus longue série de lettres non conflictuelles à utiliser comme paramètres implicites .
FOR
vous fournira toutes les informations dont vous aurez besoin sur les boucles FOR, y compris des exemples d'utilisation appropriée.
Essayez ce code:
@echo off
color 02
set num1=0
set num2=1
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause
exit
:open
echo %num1%
goto loop
num1
est le nombre à incrémenter et num2
est la valeur ajoutée à num1
et terminator est la valeur à la fin de num1
. Vous pouvez indiquer une valeur différente pour le terminateur dans cette instruction (if %num1%==%terminator% goto close
). Ceci est l'expression booléenne goto close est le processus si le booléen est vrai et goto open est le processus si le booléen est faux.
@echo off
echo.
set /p num1=Enter Prelim:
echo.
set /p num2=Enter Midterm:
echo.
set /p num3=Enter Semi:
echo.
set /p num4=Enter Finals:
echo.
set /a ans=%num1%+%num2%+%num3%+%num4%
set /a avg=%ans%/4
ECHO %avg%
if %avg%>=`95` goto true
:true
echo The two numbers you entered were the same.
echo.
pause
exit
De FOR /?
doc d'aide:
FOR% variable IN (set) DO commande [paramètres de commande]
% variable Spécifie un paramètre remplaçable par une seule lettre.
(set) Spécifie un ensemble d'un ou plusieurs fichiers. Les caractères génériques peuvent être utilisés. commande Spécifie la commande à exécuter pour chaque fichier.
paramètres de commande
Spécifie les paramètres ou les commutateurs pour la commande spécifiée.
Pour utiliser la commande FOR dans un programme de traitement par lots, spécifiez plutôt la variable %%
de la variable%. Les noms de variables sont sensibles à la casse, donc% i est différent
de moi.
Si Command Extensions est activé, les informations supplémentaires suivantes
Les formes de la commande FOR sont supportées:
FOR/D% variable IN (définir) DO commande [paramètres de commande]
If set contains wildcards, then specifies to match against directory
names instead of file names.
FOR/R [[lecteur:] chemin]% variable IN (définie) DO commande [paramètres de commande]
Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.
FOR/L% variable IN (début, étape, fin) DO commande [paramètres de commande]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)