Foreach

Das FOREACH-Token analysiert die Ausgabe eines oder mehrerer Debuggerbefehle und verwendet jeden Wert in dieser Ausgabe als Eingabe für einen oder mehrere zusätzliche Befehle.

.foreach [Options] ( Variable  { InCommands } ) { OutCommands } 

.foreach [Options] /s ( Variable  "InString" ) { OutCommands } 

.foreach [Options] /f ( Variable  "InFile" ) { OutCommands } 

Syntax-Elemente

Optionen können eine beliebige Kombination der folgenden Optionen sein:

/pS InitialSkipNumber
Bewirkt, dass einige anfängliche Token übersprungen werden. InitialSkipNumber gibt die Anzahl der Ausgabetoken an, die nicht an die angegebenen OutCommands übergeben werden.

/ps SkipNumber
Bewirkt, dass Token bei jeder Verarbeitung eines Befehls wiederholt übersprungen werden. Nach jedem Übergeben eines Tokens an die angegebenen OutCommands wird eine Anzahl von Token, die dem Wert von SkipNumber entsprechen, ignoriert.

Variable
Gibt einen Variablennamen an. Diese Variable wird verwendet, um die Ausgabe von jedem Befehl in der InCommands-Zeichenfolge zu speichern. Sie können auf Variable anhand des Namens in den Parametern verweisen, die an die OutCommands übergeben werden. Jede alphanumerische Zeichenfolge kann verwendet werden, obwohl die Verwendung einer Zeichenfolge, die auch für eine gültige Hexadezimalzahl oder einen Debuggerbefehl übergeben werden kann, nicht empfohlen wird. Wenn der für Variable verwendete Name mit einer vorhandenen globalen Variablen, einer lokalen Variablen oder einem Alias übereinstimmt, werden ihre Werte vom Befehl ".foreach" nicht beeinflusst.

InCommands
Gibt einen oder mehrere Befehle an, deren Ausgabe analysiert wird; die resultierenden Token werden an OutCommands übergeben. Die Ausgabe von InCommands wird nicht angezeigt.

InString
Wird mit /s verwendet. Gibt eine Zeichenfolge an, die analysiert wird. die resultierenden Token werden an OutCommands übergeben.

Infile
Wird mit /f verwendet. Gibt eine Textdatei an, die analysiert wird. die resultierenden Token werden an OutCommands übergeben. Der Dateiname InFile muss in Anführungszeichen eingeschlossen werden.

OutCommands
Gibt einen oder mehrere Befehle an, die für jedes Token ausgeführt werden. Wenn die Variable-Zeichenfolge auftritt, wird sie durch das aktuelle Token ersetzt.

Hinweis: Wenn die Zeichenfolgenvariable in OutCommands angezeigt wird, muss sie von Leerzeichen umgeben sein. Wenn sie an einen anderen Text angrenzen - sogar eine Klammer - wird sie nicht durch den aktuellen Tokenwert ersetzt, es sei denn, Sie verwenden das Token ${ } (Alias Interpreter).

Zusätzliche Informationen

Informationen über andere Kontrollfluss-Token und ihre Verwendung in Debugger-Befehlsprogrammen finden Sie unter Verwendung von Debugger-Befehlsprogrammen.

Hinweise

Wenn die Ausgabe von InCommands, der InString-Zeichenfolge oder der InFile-Datei analysiert wird, wird eine beliebige Anzahl von Leerzeichen, Tabstopps oder Wagenrückgängen als einzelnes Trennzeichen behandelt. Jeder der resultierenden Textabschnitte wird verwendet, um die Variable zu ersetzen, wenn sie in OutCommands angezeigt wird.

Nachfolgend finden Sie ein Beispiel für eine FOREACH-Anweisung, die den Befehl "dds" für jedes Token verwendet, das in der Datei myfile.txt zu finden ist:

0:000> .foreach /f ( place "g:\myfile.txt") { dds place } 

Die Flags "/pS " und "/ps " können verwendet werden, um nur bestimmte Token an die angegebenen OutCommands zu übergeben. Die folgende Anweisung überspringt beispielsweise die ersten beiden Token in der myfile.txt-Datei und übergibt dann den dritten an dds. Nach jedem übergebenen Token überspringt es vier Token. Das Ergebnis ist, dass dds mit dem 3. , 8. , 13. und 18. und 23. Token verwendet werden usw.:

0:000> .foreach /pS 2 /ps 4 /f ( place "g:\myfile.txt") { dds place } 

Weitere Beispiele, die das FOREACH-Token verwenden, finden Sie unter Debugger-Befehlsprogrammbeispiele.