.foreach
Le jeton .foreach analyse la sortie d’une ou plusieurs commandes de débogueur et utilise chaque valeur dans cette sortie comme entrée à une ou plusieurs commandes supplémentaires.
.foreach [Options] ( Variable { InCommands } ) { OutCommands }
.foreach [Options] /s ( Variable "InString" ) { OutCommands }
.foreach [Options] /f ( Variable "InFile" ) { OutCommands }
Éléments de syntaxe
Les options peuvent être n’importe quelle combinaison des options suivantes :
/pS InitialSkipNumber
Entraîne l’ignorer de certains jetons initiaux. InitialSkipNumber spécifie le nombre de jetons de sortie qui ne seront pas passés aux OutCommands spécifiés.
/ps SkipNumber
Provoque le fait que les jetons soient ignorés à plusieurs reprises chaque fois qu’une commande est traitée. Une fois qu’un jeton est passé à l’OutCommands spécifié, un nombre de jetons égal à la valeur de SkipNumber est ignoré.
Variable
Spécifie un nom de variable. Cette variable sera utilisée pour contenir la sortie de chaque commande de la chaîne InCommands . Vous pouvez référencer la variable par nom dans les paramètres passés à OutCommands. Toute chaîne alphanumérique peut être utilisée, même si l’utilisation d’une chaîne qui peut également passer pour une commande hexadécimale ou de débogueur valide n’est pas recommandée. Si le nom utilisé pour la variable correspond à une variable globale, une variable locale ou un alias existant, leurs valeurs ne seront pas affectées par la commande .foreach .
InCommands
Spécifie une ou plusieurs commandes dont la sortie sera analysée ; les jetons résultants sont transmis à OutCommands. La sortie de InCommands n’est pas affichée.
InString
Utilisé avec /s. Spécifie une chaîne qui sera analysée ; les jetons résultants sont transmis à OutCommands.
Infile
Utilisé avec /f. Spécifie un fichier texte qui sera analysé ; les jetons résultants sont transmis à OutCommands. Le nom de fichier InFile doit être placé entre guillemets.
OutCommands
Spécifie une ou plusieurs commandes qui seront exécutées pour chaque jeton. Chaque fois que la chaîne variable se produit, elle sera remplacée par le jeton actuel.
Remarque Lorsque la variable de chaîne apparaît dans OutCommands, elle doit être entourée d’espaces. S’il est adjacent à n’importe quel autre texte - même une parenthèse - il ne sera pas remplacé par la valeur du jeton actuel, sauf si vous utilisez le jeton ${ } (Interpréteur d’alias).
Informations supplémentaires
Pour plus d’informations sur les autres jetons de flux de contrôle et leur utilisation dans les programmes de commandes du débogueur, consultez Utilisation des programmes de commande du débogueur.
Notes
Lorsque la sortie de InCommands, la chaîne InString ou le fichier InFile est analysé, un nombre quelconque d’espaces, de tabulations ou de retours chariots est traité comme un séparateur unique. Chacun des éléments de texte résultants est utilisé pour remplacer la variable lorsqu’elle apparaît dans OutCommands.
Voici un exemple d’instruction .foreach qui utilise la commande dds sur chaque jeton trouvé dans le fichier myfile.txt :
0:000> .foreach /f ( place "g:\myfile.txt") { dds place }
Les indicateurs /pS et /ps peuvent être utilisés pour transmettre uniquement certains jetons aux OutCommands spécifiés. Par exemple, l’instruction suivante ignore les deux premiers jetons du fichier myfile.txt, puis passe le troisième aux dds. Une fois chaque jeton passé, il ignore quatre jetons. Le résultat est que les dds seront utilisés avec les 3e, 8e, 13e, 18e et 23e jetons, et ainsi de suite :
0:000> .foreach /pS 2 /ps 4 /f ( place "g:\myfile.txt") { dds place }
Pour plus d’exemples qui utilisent le jeton .foreach , consultez Exemples de programme de commandes du débogueur.