.Foreach

O token .foreach analisa a saída de um ou mais comandos de 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:

/pSInitialSkipNumber
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.

/psSkipNumber
Faz com que os tokens sejam ignorados repetidamente sempre que um comando é processado. Depois de cada vez que um token for passado para os OutCommands especificados, vários tokens iguais ao valor de SkipNumber serão ignorados.

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 referenciar Variável 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 para um número hexadecimal válido ou comando de depurador. Se o nome usado para Variável corresponder a uma variável global existente, variável local ou alias, seus valores não serão afetados pelo comando .foreach .

InCommands
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.

InString
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 estar entre aspas.

OutCommands
Especifica um ou mais comandos que serão executados para cada token. Sempre que a cadeia de caracteres Variável ocorrer, ela será substituída pelo token atual.

Nota Quando a variável de cadeia de caracteres aparece em OutCommands, ela deve estar cercada por espaços. Se ele 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 ${ } (Interpretador de Alias).

Informações adicionais

Para obter informações sobre outros tokens de fluxo de controle e seu uso em programas de comando do depurador, consulte Usando programas de comando do depurador.

Comentários

Quando a saída de InCommands, a cadeia de caracteres InString ou o arquivo InFile é analisada, qualquer número de espaços, guias ou retornos de carro é tratado como um único delimitador. Cada uma das partes resultantes do texto é usada para substituir Variável 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. Depois que cada token for passado, ele ignorará quatro tokens. O resultado é que os dds serão usados 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.