.foreach
.foreach トークンは、1 つ以上のデバッガー コマンドの出力を解析し、この出力の各値を 1 つ以上の追加コマンドへの入力として使用します。
.foreach [Options] ( Variable { InCommands } ) { OutCommands }
.foreach [Options] /s ( Variable "InString" ) { OutCommands }
.foreach [Options] /f ( Variable "InFile" ) { OutCommands }
構文要素
オプション次のオプションの任意の組み合わせを指定できます。
/pS InitialSkipNumber
一部の初期トークンがスキップされます。 InitialSkipNumber は、指定された OutCommands に渡されない出力トークンの数を指定します。
/ps SkipNumber
コマンドが処理されるたびにトークンが繰り返しスキップされます。 トークンが指定された OutCommands に渡されるたびに、SkipNumber の値に等しい数のトークンが無視されます。
Variable
変数名を指定します。 この変数は、各コマンドからの出力を InCommands 文字列に保持するために使用されます。OutCommands に渡されるパラメータ内の名前で変数を参照できます。 任意の英数字文字列を使用できますが、有効な 16 進数またはデバッガー コマンドにも渡される文字列を使用することはお勧めできません。 Variable に使用される名前が既存のグローバル変数、ローカル変数、またはエイリアスと一致する場合、それらの値は .foreach コマンドの影響を受けません。
InCommands
出力を解析する 1 つ以上のコマンドを指定します。結果のトークンは OutCommands に渡されます。 InCommands からの出力は表示されません。
InString
/s と一緒に使用されます。 解析される文字列を指定します。結果のトークンは OutCommands に渡されます。
InFile
/f と一緒に使用されます。 解析するテキスト ファイルを指定します。結果のトークンは OutCommands に渡されます。 ファイル名 InFile は引用符で囲む必要があります。
OutCommands
トークンごとに実行される 1 つ以上のコマンドを指定します。 変数文字列が出現するたびに、現在のトークンに置き換えられます。
注 OutCommands 内に文字列 変数 が出現する場合は、スペースで囲む必要があります。 他のテキスト (かっこであっても) に隣接している場合は、 ${ } (エイリアス インタプリタ) トークンを使用しない限り、現在のトークン値で置き換えられません。
追加情報
他の制御フロー トークンとそのデバッガー コマンド プログラムでの使用については、「デバッガー コマンド プログラムの使用」を参照してください。
解説
InCommands、InString 文字列、または InFile ファイルからの出力が解析されるとき、任意の数のスペース、タブ、またはキャリッジ リターンが 1 つの区切り文字として扱われます。 結果として得られるテキストの各部分は、OutCommands 内に表示されるときに Variable を置き換えるために使用されます。
ファイル myfile.txt 内にある各トークンに対して dds コマンドを使用する .foreach ステートメントの例を次に示します。
0:000> .foreach /f ( place "g:\myfile.txt") { dds place }
/pS フラグと /ps フラグを使用すると、特定のトークンのみを指定した OutCommand に渡すことができます。 たとえば、次のステートメントは、myfile.txt ファイル内の最初の 2 つのトークンをスキップし、3 番目のトークンを dds に渡します。 トークンが渡されるたびに、4 つのトークンがスキップされます。 結果として、dds は 3 番目、8 番目、13 番目、18 番目、23 番目のトークンなどで使用されます。
0:000> .foreach /pS 2 /ps 4 /f ( place "g:\myfile.txt") { dds place }
.foreach トークンを使用するその他の例については、「デバッガー コマンド プログラムの例」を参照してください。