Exporter (0) Imprimer
Développer tout

For

Mis à jour: janvier 2005

S'applique à: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

For

Exécute une commande déterminée pour chaque fichier appartenant à un jeu particulier.

Syntaxe

for {%Variable | %%Variable} in (Jeu) do Commande [OptionsLigneCommande]

Paramètres
{%Variable | %%Variable}
Obligatoire. Représente un paramètre remplaçable. Utilisez %Variable pour exécuter for à l'invite de commandes. Utilisez %%Variable pour exécuter la commande for dans un fichier de commandes. Les variables respectent la casse et doivent être représentées à l'aide d'une valeur alphabétique, telle que %A, %B ou %C.

( Jeu )
Obligatoire. Spécifie un ou plusieurs fichiers, répertoires, plages de valeurs ou chaînes de texte que vous voulez traiter à l'aide de la commande spécifiée. Les parenthèses sont obligatoires.

Commande
Obligatoire. Spécifie la commande que vous voulez exécuter sur chaque fichier, répertoire, plage de valeurs ou chaîne de texte comprise dans le (Jeu) spécifié.

OptionsLigneCommande
Spécifie les options de ligne de commande que vous souhaitez utiliser avec la commande spécifiée.

/?
Affiche l'aide à l'invite de commandes.

Notes
  • Utilisation de for

    La commande for peut être utilisée dans un fichier de commandes ou directement à l'invite de commandes.

  • Utilisation des paramètres de commande

    Les attributs suivants s'appliquent à la commande for :

    • La commande for remplace %Variable (ou %%Variable) par chaque chaîne de texte du Jeu spécifié jusqu'à ce que la Commande ait traité tous les fichiers.

    • Les noms de Variablefor respectent la casse, sont des variables globales et vous ne pouvez pas en activer plus de 52 au total.

    • Pour éviter toute confusion avec les paramètres de commandes %0 à %9, vous pouvez utiliser pour la Variable n'importe quel caractère, à l'exception des chiffres 0 à 9. Pour les fichiers de commandes simples, un seul caractère tel que %%f suffit.

    • Dans les fichiers de commandes complexes, vous pouvez utiliser plusieurs valeurs pour la Variable afin de distinguer les diverses variables remplaçables.

  • Spécification d'un groupe de fichiers

    Le paramètre Jeu peut représenter un seul ou plusieurs groupes de fichiers. Pour spécifier un jeu de fichiers, vous pouvez utiliser des caractères génériques (* et ?). Les jeux suivants sont tous valides :

    (*.doc)

    (*.doc *.txt *.me)

    (jan*.doc jan*.rpt fév*.doc fév*.rpt)

    (ar??1991.* ap??1991.*)

    Quand vous utilisez la commande for, la première valeur du Jeu remplace %Variable ou %%Variable, puis la commande spécifiée traite cette valeur. Ce processus continue jusqu'à ce tous les fichiers (ou groupes de fichiers) correspondant à la ou aux valeurs du Jeu aient été traités.

  • Utilisation des mots clés in et do

    In et do ne sont pas des paramètres, mais ils sont requis dans la commande for. Si vous omettez l'un ou l'autre de ces mots clés, un message d'erreur apparaît.

  • Utilisation de formes supplémentaires de for

    Si les extensions de commande sont activées (ce qui est le cas par défaut), les formes supplémentaires suivantes de la commande for sont prises en charge.

    • Répertoires seulement

      Si le Jeu contient des caractères génériques (* et ?), la Commande spécifiée s'exécute pour chaque répertoire (au lieu d'un jeu de fichiers dans un répertoire spécifié) qui correspond au Jeu. La syntaxe de cette commande est la suivante :

      for/D {%% | %}Variable in (Jeu) do Commande [OptionsLigneCommande]

    • Récursive

      Parcourt l'arborescence des répertoires à partir de la racine de [Lecteur:]Chemin, en exécutant l'instruction for dans chaque répertoire de l'arborescence. Si aucun répertoire n'est spécifié après /R, le répertoire actif est utilisé. Si Jeu ne contient qu'un seul point (.), seule l'arborescence des répertoires est énumérée. La syntaxe de cette commande est la suivante :

      for/R [[Lecteur:]Chemin] {%% | %}Variable in (Jeu) do Commande [OptionsLigneCommande]

    • Itération d'une page de valeurs

      Utilisez une variable itérative pour définir la valeur de début (Début#) puis avancez dans une plage définie de valeurs jusqu'à ce que la valeur dépasse la valeur de fin définie (Fin#). /L exécute l'itération en comparant Début# et Fin#. Si Début# est inférieur à Fin#, la commande s'exécute. Lorsque la variable itérative dépasse Fin#, la commande quitte la boucle. Vous pouvez également utiliser une valeur Incrément# négative pour faire défiler une plage de valeurs décroissantes. Par exemple, (1,1,5) génère la séquence 1 2 3 4 5 et (5,-1,1) génère la séquence (5 4 3 2 1). La syntaxe de cette commande est la suivante :

      for/L {%% | %}Variable in (Début#,Incrément#,Fin#) do Commande [OptionsLigneCommande]

    • Itération et analyse de fichier

      Utilisez l'analyse de fichiers pour traiter la sortie de la commande, les chaînes et le contenu des fichiers. Utilisez des variables itératives pour définir le contenu ou les chaînes que vous voulez examiner et utilisez les différentes options MotsClésAnalyse pour continuer à modifier l'analyse. Utilisez l'option de jeton MotsClésAnalyse pour spécifier quels jetons doivent être passés en tant que variables d'itération. Notez que sans l'option de jeton, /F n'examine que le premier jeton.

      L'analyse des fichiers consiste à lire la sortie, la chaîne ou le contenu du fichier, à le diviser en lignes de texte séparées, puis à analyser chaque ligne dans zéro jeton ou davantage. La boucle for est ensuite appelée avec la valeur de variable d'itération définie sur le jeton. Par défaut, /F passe le premier jeton séparé par un blanc à partir de chaque ligne de chaque fichier. Les lignes blanches sont sautées. Les autres syntaxes sont les suivantes :

      for/F ["MotsClésAnalyse"] {%% | %}Variablein (JeuNomsFichiers) do Commande [OptionsLigneCommande]

      for/F ["MotsClésAnalyse"] {%% | %}Variable in ("ChaîneLittérale") do Commande [OptionsLigneCommande]

      for/F ["MotsClésAnalyse"] {%% | %}Variable in ('Commande') do Commande [OptionsLigneCommande]

      L'argument JeuNomsFichiers spécifie un ou plusieurs noms de fichiers. Chaque fichier est ouvert, lu et traité avant de passer au fichier suivant du JeuNomsFichiers. Pour passer outre le comportement d'analyse par défaut, spécifiez "MotsClésAnalyse". Il s'agit d'une chaîne placée entre guillemets qui contient un ou plusieurs mots clés pour spécifier différentes options d'analyse.

      Si vous utilisez l'option usebackq, utilisez l'une des syntaxes suivantes :

      for/F ["usebackqMotsClésAnalyse"] {%% | %}Variable in ("JeuNomsFichiers") do Commande [OptionsLigneCommande]

      for/F ["usebackqMotsClésAnalyse"] {%% | %}Variable in ('ChaîneLittérale') do Commande [OptionsLigneCommande]

      for/F ["usebackqMotsClésAnalyse"] {%% | %}Variable in ('Commande') do Commande [OptionsLigneCommande]

      Le tableau suivant répertorie les mots clés d'analyse que vous pouvez utiliser dans MotsClésAnalyse.

       

      Mot clé Description

      eol=c

      Spécifie un caractère de fin de ligne (juste un caractère).

      skip=N

      Spécifie le nombre de lignes à sauter au début du fichier.

      delims=xxx

      Spécifie un jeu de séparateur. Celui-ci remplace le jeu de délimiteur par défaut constitué de l'espace et de la tabulation.

      tokens=X,Y,M-N

      Spécifie les jetons de chaque ligne qui doivent être passés au corps de la commande for pour chaque itération. Par conséquent, les noms de variables supplémentaires sont alloués. La forme M-N est une plage qui spécifie le Mième au Nième jeton. Si le dernier caractère de la chaîne tokens= est un astérisque (*), une variable supplémentaire est allouée pour recevoir le texte restant de la ligne après le dernier jeton analysé.

      usebackq

      Spécifie que vous pouvez utiliser des guillemets pour les noms de fichiers de JeuNomsFichiers, une chaîne à guillemet inversé est exécutée comme une commande et une chaîne à guillemet simple est une commande de chaîne littérale.

    • Substitution de variable

      Les modificateurs de substitution pour les références de variable for ont été améliorés. Le tableau suivant répertorie les syntaxes facultatives (pour toute variable I).

       

      Variable avec modificateur Description

      %~I

      Développe %I qui supprime les guillemets ("").

      %~fI

      Développe %I en nom de chemin complet.

      %~dI

      Développe %I en une lettre de lecteur seulement.

      %~pI

      Développe %I en chemin seulement.

      %~nI

      Développe %I en nom de fichier seulement.

      %~xI

      Développe %I en extension de fichier seulement.

      %~sI

      Développe le chemin pour qu'il contienne seulement des noms courts.

      %~aI

      Développe %I jusqu'aux attributs du fichier.

      %~tI

      Développe %I jusqu'à la date et l'heure du fichier.

      %~zI

      Développe %I jusqu'à la taille du fichier.

      %~$PATH:I

      Recherche les répertoires énumérés dans la variable d'environnement et développe %I jusqu'au nom complet du premier répertoire trouvé. Si le nom de la variable d'environnement n'est pas défini ou si la recherche ne trouve pas de fichier, ce modificateur se développe en une chaîne vide.

      Le tableau suivant répertorie les combinaisons de modificateurs que vous pouvez utiliser pour obtenir des résultats composés.

       

      Variable avec modificateurs combinés Description

      %~dpI

      Développe %I en une lettre de lecteur et un chemin seulement.

      %~nxI

      Développe %I en nom de fichier et une extension seulement.

      %~fsI

      Développe %I en un nom de chemin complet avec des noms courts seulement.

      %~dp$PATH:I

      Recherche les répertoires énumérés dans la variable d'environnement pour %I et développe jusqu'à la lettre du lecteur et au chemin du premier répertoire trouvé.

      %~ftzaI

      Développe %I en une ligne de sortie semblable à dir.

      Dans les exemples ci-dessus, vous pouvez remplacer %I et PATH par d'autres valeurs valides. Un nom de variable for valide termine la syntaxe %~.

      L'utilisation de noms de variable en majuscules tels que %I facilite la lecture de votre code et évite toute confusion avec les modificateurs, qui ne différencient pas la casse.

  • Analyse d'une chaîne

    Vous pouvez aussi utiliser la logique d'analyse for /F sur une chaîne immédiate, en mettant entre guillemets simples le JeuNomsFichiers entre parenthèses (c'est-à-dire, 'JeuNomsFichiers'). JeuNomsFichiers est traité comme une simple ligne d'entrée d'un fichier, puis est analysé.

  • Analyse de la sortie

    Vous pouvez utiliser la commande for /F pour analyser la sortie d'une commande en convertissant le JeuNomsFichiers entre parenthèses en une chaîne à guillemet inversé. Celle-ci sera alors traitée comme une ligne de commande, qui est passée à un fichier Cmd.exe enfant tandis que la sortie est capturée en mémoire et analysée comme s'il s'agissait d'un fichier.

Exemples

Pour utiliser for dans un fichier de commandes, employez la syntaxe suivante :

for %% Variable in ( Jeu ) do Commande [OptionsLigneCommande]

Pour afficher le contenu de tous les fichiers .doc ou .txt du répertoire courant à l'aide de la variable remplaçable %f, tapez :

for %f in (*.doc *.txt) do type %f

Dans cet exemple, chacun des fichiers du répertoire actif pourvu de l'extension .doc ou .txt est substitué à la variable %f jusqu'à ce que le contenu de tous les fichiers ait été affiché. Pour utiliser cette commande dans un fichier de commandes, remplacez toutes les occurrences de %f par %%f. Sans cela, la variable est ignorée et un message d'erreur est affiché.

Pour analyser un fichier en ignorant les lignes de commentaires, tapez :

for /F "eol=; tokens=2,3* delims=," %i in (monfichier.txt) do @echo %i %j %k

Cette commande analyse chaque ligne du fichier Monfichier.txt en ignorant les lignes qui commencent par un point-virgule et en passant le deuxième et le troisième jeton de chaque ligne au corps de la commande FOR (les jetons sont délimités par des virgules ou des espaces). Le corps de l'instruction FOR fait référence à %i pour obtenir le deuxième jeton, à %j pour obtenir le troisième jeton et à %k pour obtenir tous les autres jetons. Si les noms de fichiers que vous indiquez contiennent des espaces, mettez le texte entre guillemets (par exemple, "Nom Fichier"). Pour utiliser des guillemets, utilisez usebackq. Sans cela, les guillemets sont interprétés comme s'ils définissent une chaîne littérale à analyser.

%i est déclaré de manière explicite dans l'instruction FOR. %j et %k sont déclarés de manière implicite à l'aide de l'option tokens=. Vous pouvez spécifier jusqu'à 26 jetons à l'aide de tokens=, à condition que cela n'entraîne pas une tentative de déclaration d'une variable supérieure à « z » ou « Z ».

Par analyser la sortie d'une commande en plaçant JeuNomsFichiers entre les parenthèses, tapez :

for /F "usebackq delims==" %i IN ('jeu') DO @echo %i

Cet exemple énumère les noms de variable d'environnement dans l'environnement actuel.

Légende de mise en forme

 

Mise en forme Signification

Italique

Informations que l'utilisateur doit fournir

Gras

Éléments que l'utilisateur doit taper tels qu'ils sont indiqués

Points de suspension (...)

Paramètre pouvant être répété plusieurs fois dans une ligne de commande

Entre crochets ([])

Éléments facultatifs

Entre accolades ({}), avec séparation des options par une barre verticale (|). Exemple : {pair|impair}

Ensemble d'options parmi lesquelles l'utilisateur doit en choisir une seule

Police Courier

Code ou données de programme

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft