.foreach
O token .foreach analisa a saída de um ou mais comandos do depurador e usa cada valor nessa saída como a entrada para um ou mais comandos adicionais.
.foreach [Options] ( Variable { InCommands } ) { OutCommands }
.foreach [Options] /s ( Variable "InString" ) { OutCommands }
.foreach [Options] /f ( Variable "InFile" ) { OutCommands }
Elementos de sintaxe
Opções Pode ser qualquer combinação das seguintes opções:
/pS InitialSkipNumber
Faz com que alguns tokens iniciais sejam ignorados. InitialSkipNumber especifica o número de tokens de saída que não serão passados para os OutCommands especificados.
/ps SkipNumber
Faz com que os tokens sejam ignorados repetidamente sempre que um comando é processado. Depois de cada vez que um token é passado para os OutCommands especificados, um número de tokens igual ao valor de SkipNumber será ignorado.
Variável
Especifica um nome de variável. Essa variável será usada para manter a saída de cada comando na cadeia de caracteres InCommands; você pode fazer referência a Variable por nome nos parâmetros passados para OutCommands. Qualquer cadeia de caracteres alfanumérica pode ser usada, embora não seja recomendável usar uma cadeia de caracteres que também possa passar por um número hexadecimal válido ou um comando do depurador. Se o nome usado para Variable corresponder a uma variável global, variável local ou alias existente, seus valores não serão afetados pelo comando .foreach .
InComandos
Especifica um ou mais comandos cuja saída será analisada; os tokens resultantes serão passados para OutCommands. A saída de InCommands não é exibida.
Em String
Usado com /s. Especifica uma cadeia de caracteres que será analisada; os tokens resultantes serão passados para OutCommands.
Infile
Usado com /f. Especifica um arquivo de texto que será analisado; os tokens resultantes serão passados para OutCommands. O nome do arquivo InFile deve ser colocado entre aspas.
Comandos de saída
Especifica um ou mais comandos que serão executados para cada token. Sempre que a string Variable ocorrer, ela será substituída pelo token atual.
Observação Quando a string Variable aparece em OutCommands, ela deve ser cercada por espaços. Se for adjacente a qualquer outro texto - mesmo um parêntese - ele não será substituído pelo valor do token atual, a menos que você use o token ${ } (Alias Interpreter).
Informações Adicionais
Para saber mais sobre outros tokens de fluxo de controle e o uso em programas de comando do depurador, confira Usar programas de comando do depurador.
Comentários
Quando a saída de InCommands, da cadeia de caracteres InString ou do arquivo InFile é analisada, qualquer número de espaços, tabulações ou retornos de carro é tratado como um único delimitador. Cada uma das partes de texto resultantes é usada para substituir Variable quando ela aparece em OutCommands.
Aqui está um exemplo de uma instrução .foreach que usa o comando dds em cada token encontrado no arquivo myfile.txt:
0:000> .foreach /f ( place "g:\myfile.txt") { dds place }
Os sinalizadores /pS e /ps podem ser usados para passar apenas determinados tokens para os OutCommands especificados. Por exemplo, a instrução a seguir ignorará os dois primeiros tokens no arquivo myfile.txt e, em seguida, passará o terceiro para dds. Após cada token passado, ele pulará quatro tokens. O resultado é que o dds será usado com os tokens 3º, 8º, 13º, 18º e 23º e assim por diante:
0:000> .foreach /pS 2 /ps 4 /f ( place "g:\myfile.txt") { dds place }
Para obter mais exemplos que usam o token .foreach , consulte Exemplos de programa de comando do depurador.