.foreach

.foreach 令牌分析一个或多个调试器命令的输出,并使用此输出中的每个值作为一个或多个附加命令的输入。

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

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

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

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

OutCommands
指定将为每个令牌执行的一个或多个命令。 每当 变量 字符串出现时,它就会替换为当前标记。

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

其他信息

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

注解

分析 InCommandsInString 字符串或 InFile 文件的输出时,任意数量的空格、制表符或回车符被视为单个分隔符。 在 OutCommands 中显示 Variable 时,每个生成的文本片段都用于替换 Variable。

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

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

/pS/ps 标志只能将某些标记传递给指定的 OutCommands。 例如,以下语句将跳过 myfile.txt 文件中的前两个标记,然后将第三个标记传递给 dds。 传递的每个令牌后,它将跳过四个令牌。 结果是 dds 将与第 3 个、第 8 个、第 13 个、第 18 个和第 23 个标记一起使用,依此使用:

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

有关使用 .foreach 令牌的更多示例,请参阅 调试器命令程序示例