.foreach

.foreach 令牌會剖析一或多個調試程式的命令輸出,並使用這個輸出中的每個值做為一或多個其他命令的輸入。

.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 值的令牌數目。

變數
指定變數名稱。 此變數將用來保存 InCommands 字串中每個命令的輸出;您可以在傳遞至 OutCommands 的參數中依名稱參考 Variable。 您可以使用任何英數位元字串,不過不建議使用也可以傳遞有效十六進位數或調試程式命令的字串。 如果用於 Variable 的名稱恰好符合現有的全域變數、局部變數或別名,其值將不會受到 .foreach 命令的影響。

InCommands
指定將剖析其輸出的一或多個命令;產生的令牌將會傳遞至 OutCommands。 不會顯示 InCommands輸出。

InString
與 /s 搭配使用。 指定要剖析的字串;產生的令牌將會傳遞至 OutCommands

InFile
與 /f 搭配使用。 指定要剖析的文字檔;產生的令牌將會傳遞至 OutCommands。 檔名 InFile 必須以引號括住。

OutCommands
指定將針對每個令牌執行的一或多個命令。 每當發生變數字串時,就會由目前的令牌取代。

注意 當字串變數出現在 OutCommands時,它必須以空格括住。 如果它與任何其他文字相鄰,即使是括弧,它也不會由目前的令牌值取代,除非您使用 ${ } (別名解釋器) 令牌。

其他資訊

如需其他控制流程令牌及其在調試程式命令程式中使用的資訊,請參閱 使用調試程式命令程式

備註

當 InCommands 的輸出InString 字串或 InFile 檔案剖析時,任何數目的空格、索引標籤或歸位字元都會被視為單一分隔符。 在 OutCommands出現時,每個產生的文字片段都會用來取代 Variable

以下是 .foreach 語句的範例,它會在檔案中找到的每個令牌上使用 dds 命令myfile.txt

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

/pS/ps 旗標只能將特定令牌傳遞至指定的 OutCommands。 例如,下列語句會略過myfile.txt檔案中的前兩個令牌,然後將第三個令牌傳遞至 dds。 在每個傳遞的令牌之後,它會略過四個令牌。 結果是 dd 會與第 3、8、13、18 和 23 個令牌搭配使用,依下列方式使用:

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

如需使用 .foreach 令牌的更多範例,請參閱調試程式命令程式範例