.foreach

.foreach トークンは、1 つ以上のデバッガー コマンドの出力を解析し、この出力の各値を 1 つ以上の追加コマンドへの入力として使用します。

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

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

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

構文要素

オプション次のオプションの任意の組み合わせを指定できます。

/pSInitialSkipNumber
一部の初期トークンがスキップされます。 InitialSkipNumber は、指定された OutCommands に渡されない出力トークンの数を指定します。

/psSkipNumber
コマンドが処理されるたびにトークンが繰り返しスキップされます。 トークンが指定された OutCommands に渡されるたびに、SkipNumber の値に等しい数のトークンが無視されます。

変数
変数名を指定します。 この変数は、各コマンドからの出力を InCommands 文字列に保持するために使用されます。OutCommands に渡されるパラメータ内の名前で変数を参照できます。 任意の英数字文字列を使用できますが、有効な 16 進数またはデバッガー コマンドにも渡される文字列を使用することはお勧めできません。 Variable に使用される名前が既存のグローバル変数、ローカル変数、またはエイリアスと一致する場合、それらの値は .foreach コマンドの影響を受けません。

InCommands
出力を解析する 1 つ以上のコマンドを指定します。結果のトークンは OutCommands に渡されます。 InCommands からの出力は表示されません。

InString
/s と一緒に使用されます。 解析される文字列を指定します。結果のトークンは OutCommands に渡されます。

InFile
/f と一緒に使用されます。 解析するテキスト ファイルを指定します。結果のトークンは OutCommands に渡されます。 ファイル名 InFile は引用符で囲む必要があります。

OutCommands
トークンごとに実行される 1 つ以上のコマンドを指定します。 変数文字列が出現するたびに、現在のトークンに置き換えられます。

OutCommands 内に文字列 変数 が出現する場合は、スペースで囲む必要があります。 他のテキスト (かっこであっても) に隣接している場合は、 ${ } (エイリアス インタプリタ) トークンを使用しない限り、現在のトークン値で置き換えられません。

追加情報

他の制御フロー トークンとデバッガー コマンド プログラムでのそれらの使用については、「デバッガー コマンド プログラムの使用」を参照してください。

解説

InCommandsInString 文字列、または 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 トークンを使用するその他の例については、「デバッガー コマンド プログラムの例」を参照してください。