.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 的参数中按名称引用变量。 可以使用任何字母数字字符串,尽管不建议使用也可以为有效的十六进制数或调试器命令传递的字符串。 如果用于变量的名称恰好与现有的全局变量、局部变量或别名匹配,则其值将不受 .foreach 命令的影响

InCommands
指定将分析其输出的一个或多个命令;生成的令牌将传递给 OutCommands。 不显示 InCommands输出。

InString
与 /s 一起使用。 指定要分析的字符串;生成的令牌将传递给 OutCommands

InFile
与 /f 一起使用。 指定要分析的文本文件;生成的令牌将传递给 OutCommands。 文件名 InFile 必须用引号引起来。

OutCommands
指定将为每个令牌执行的一个或多个命令。 每当 发生变量 字符串时,它都会被当前令牌替换。

注意,当字符串变量出现在 OutCommands时,它必须用空格括起来。 如果它与任何其他文本(甚至括号)相邻,则它不会被当前令牌值替换,除非使用 ${ } (别名解释器) 令牌。

其他信息

有关其他控制流令牌及其在调试器命令程序中的使用的信息,请参阅使用调试器命令程序

注解

分析 InCommands、InString 字符串或 InFile 文件的输出时,将任意数量的空格、制表符或回车符视为单个分隔符。 当变量出现在 OutCommands时,将使用每个生成的文本片段替换变量

下面是一个 .foreach 语句示例,该语句在文件myfile.txt中找到的每个令牌上使用 dds 命令:

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 令牌的更多示例,请参阅调试器命令程序示例