Ligne de commande MS-DOS et Windows pour la commande

Table des matières:

Ligne de commande MS-DOS et Windows pour la commande
Ligne de commande MS-DOS et Windows pour la commande

Vidéo: commande de Windows ms dos 2024, Mai

Vidéo: commande de Windows ms dos 2024, Mai
Anonim

La variable FOR est utilisée pour que les fichiers de commandes exécutent une commande spécifique lorsqu'un paramètre est atteint ou déclaré.

  • Disponibilité
  • Pour la syntaxe
  • Pour des exemples

Disponibilité

For est une commande interne et est disponible dans les systèmes d'exploitation Microsoft suivants.

  • Toutes les versions de MS-DOS
  • Windows 95
  • Windows 98
  • Windows ME
  • Windows NT
  • Windows 2000
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10

Pour la syntaxe

  • Windows 2000, XP et syntaxe ultérieure.
  • Windows 95, 98, ME syntaxe.

Windows 2000, XP et syntaxe ultérieure

FOR% variable IN (set) DO commande [paramètres de commande]

%variable Un paramètre arbitraire.
(ensemble de fichiers) Spécifie un ensemble d'un ou plusieurs fichiers. Des caractères génériques peuvent être utilisés.
commander Spécifie la commande à exécuter pour chaque fichier.
paramètres de commande Spécifie des paramètres ou des commutateurs pour la commande spécifiée.

Pour utiliser la commande FOR dans un programme batch, spécifiez la variable %% au lieu de la variable%. Les noms de variable sont sensibles à la casse, donc% i est différent de% I.

Si les extensions de commande sont activées, les formes supplémentaires suivantes de la commande FOR sont prises en charge:

FOR / D% variable IN (set) commande DO [paramètres de commande]

Si l'ensemble contient des caractères génériques, spécifie alors à faire correspondre les noms de répertoire au lieu des noms de fichier.

FOR / R [[drive:] path]% variable IN (set) DO commande [command-parameters]

Parcourt l'arborescence de répertoires enracinée dans le chemin [lecteur:], exécutant l'instruction FOR dans chaque répertoire de l'arborescence. Si aucune spécification de répertoire n'est spécifiée après / R, le répertoire actuel est supposé. Si set n'est qu'un seul caractère point (.), Il énumérera l'arborescence de répertoires.

FOR / L% variable IN (début, étape, fin) commande DO [paramètres de commande]

L'ensemble est une séquence de nombres du début à la fin, par quantité d'étape. Ainsi (1,1,5) générerait la séquence 1 2 3 4 5 et (5, -1,1) générerait la séquence (5 4 3 2 1).

FOR / F ["options"]% variable IN (ensemble de fichiers) commande DO [paramètres de commande] FOR / F ["options"]% variable IN ("chaîne") commande DO [paramètres de commande] FOR / F ["options"]% variable IN ('commande') Commande DO [paramètres de commande]

ou, si l'option usebackq est présente:

FOR / F ["options"]% variable IN (ensemble de fichiers) commande DO [paramètres de commande] FOR / F ["options"]% variable IN ('chaîne') commande DO [paramètres de commande] FOR / F ["options"]% variable IN (`command`) commande DO [paramètres de commande]

L'ensemble de fichiers de paramètres est un ou plusieurs noms de fichiers qui sont la source d'entrée. Chaque fichier de l'ensemble de noms de fichiers est ouvert, lu et traité avant de passer au suivant. Le traitement consiste à lire le fichier, à le diviser en lignes de texte individuelles, puis à analyser chaque ligne en zéro ou plusieurs jetons. Le corps de la boucle for est ensuite appelé avec la ou les valeurs de variable définies sur la ou les chaînes de jeton trouvées. Par défaut, / F transmet le premier jeton séparé vierge de chaque ligne de chaque fichier. Les lignes vides sont ignorées. Vous pouvez remplacer le comportement d'analyse par défaut en spécifiant le paramètre optionnel "options". Une chaîne entre guillemets contient un ou plusieurs mots-clés pour spécifier différentes options d'analyse. Les mots clés sont:

eol = c Spécifie un seul commentaire de fin de ligne.
sauter = n Spécifie le nombre de lignes à ignorer au début du fichier.
delims = xxx Spécifie un jeu de délimiteurs, qui remplace le jeu de délimiteurs par défaut d'espace et de tabulation.
jetons = x, y, mn Spécifie quels jetons de chaque ligne doivent être transmis au corps for pour chaque itération, ce qui entraîne l'allocation de noms de variables supplémentaires. La forme mn est une plage, spécifiant les mth aux nth tokens. Si le dernier caractère de la chaîne tokens = est un astérisque, une variable supplémentaire est allouée et reçoit le texte de ligne restant après le dernier jeton analysé.
usebackq Spécifie que la nouvelle sémantique est en vigueur, où une chaîne entre guillemets est exécutée en tant que commande, et une chaîne entre guillemets unique est une commande de chaîne littérale. L'option permet également l'utilisation de guillemets doubles pour citer des noms de fichiers dans un ensemble de fichiers.

Quelques exemples pourraient aider:

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

analyse monfichier.txt, en ignorant les lignes commençant par un point-virgule, en passant les 2ème et 3ème jetons de chaque ligne au corps for, avec des jetons délimités par des virgules et des espaces. Remarquez les instructions for body référence% i pour obtenir le 2ème jeton,% j pour obtenir le 3ème jeton et% k pour obtenir tous les jetons restants après le 3ème. Pour les noms de fichiers contenant des espaces, vous devez citer les noms de fichiers avec des guillemets doubles. Pour utiliser des guillemets doubles de cette manière, vous devez utiliser l'option usebackq. Sinon, les guillemets doubles sont interprétés comme définissant une chaîne littérale à analyser.

% i est explicitement déclaré dans l'instruction for, et les% j et% k sont implicitement déclarés via l'option tokens =. Vous pouvez spécifier jusqu'à 26 jetons via la ligne tokens =, à condition que cela ne provoque pas une tentative de déclaration d'une variable supérieure à la lettre «z» ou «Z». N'oubliez pas que les noms de variables FOR sont sensibles à la casse, globaux et vous ne pouvez pas avoir plus de 52 actifs au total à la fois.

Vous pouvez également utiliser la logique d'analyse FOR / F sur une chaîne arbitraire. Pour ce faire, spécifiez l'ensemble de fichiers sous la forme d'une chaîne entre guillemets simples entre parenthèses. Il sera analysé comme une seule ligne d'entrée à partir d'un fichier.

Enfin, vous pouvez utiliser la commande FOR / F pour analyser la sortie d'une commande. Pour ce faire, faites de l'ensemble de fichiers entre parenthèses une chaîne entre guillemets. Il est traité comme une ligne de commande, qui passe à un CMD.EXE enfant et sa sortie est capturée en mémoire et analysée en tant que fichier. Donc l'exemple suivant:

FOR / F "usebackq delims =="% i IN (`set`) DO @echo% i

énumérerait les noms des variables d'environnement dans l'environnement actuel.

La substitution des références de variable FOR a été améliorée et vous pouvez désormais utiliser la syntaxe facultative suivante:

% ~ I Développe% I en supprimant les guillemets environnants (").
% ~ fI Développe% I en un nom de chemin d'accès complet.
% ~ dI Développe% I en une lettre de lecteur uniquement.
% ~ pI Développe% I en un chemin uniquement.
% ~ nI Développe% I en un nom de fichier uniquement.
% ~ xI Développe% I en une extension de fichier uniquement.
% ~ sI Le chemin développé ne contient que des noms courts.
% ~ aI Développe% I aux attributs de fichier du fichier.
% ~ tI Développe% I à la date / heure du fichier.
% ~ zI Développe% I à la taille du fichier.
% ~ $ CHEMIN: I Recherche les répertoires répertoriés dans la variable d'environnement PATH et développe% I jusqu'au nom complet du premier trouvé. Si le nom de la variable d'environnement n'est pas défini ou si le fichier n'est pas trouvé par la recherche, ce modificateur se développe dans la chaîne vide.

Les modificateurs peuvent être combinés pour obtenir des résultats composés:

% ~ dpI Développe% I en une lettre de lecteur et un chemin uniquement.
% ~ nxI Développe% I en un nom de fichier et une extension uniquement.
% ~ fsI Développe% I en un nom de chemin complet avec des noms courts uniquement.
% ~ dp $ PATH: i Recherche les répertoires répertoriés dans la variable d'environnement PATH pour% I et se développe dans la lettre de lecteur et le chemin du premier trouvé.
% ~ ftzaI Développe% I en une ligne de sortie de type DIR.

Dans les exemples ci-dessus,% I et PATH peuvent être remplacés par d'autres valeurs valides. La syntaxe% ~ se termine par un nom de variable FOR valide. Choisir des noms de variables majuscules comme% I le rend plus lisible et évite la confusion avec les modificateurs, qui ne sont pas sensibles à la casse.

Windows 95, 98, ME syntaxe

FOR% variable IN (set) DO commande [paramètres de commande]

%variable Spécifie un paramètre remplaçable.
(ensemble) Spécifie un ensemble d'un ou plusieurs fichiers. Des caractères génériques peuvent être utilisés.
commander Spécifie la commande à exécuter pour chaque fichier.
paramètres de commande Spécifie des paramètres ou des commutateurs pour la commande spécifiée.

Pour utiliser la commande FOR dans un programme batch, spécifiez la variable %% au lieu de la variable%.