.foreach
Il token foreach analizza l'output di uno o più comandi del debugger e usa ogni valore in questo output come input per uno o più comandi aggiuntivi.
.foreach [Options] ( Variable { InCommands } ) { OutCommands }
.foreach [Options] /s ( Variable "InString" ) { OutCommands }
.foreach [Options] /f ( Variable "InFile" ) { OutCommands }
Elementi della sintassi
Le opzioni possono essere una qualsiasi combinazione delle opzioni seguenti:
/pS InitialSkipNumber
Fa sì che alcuni token iniziali vengano ignorati. InitialSkipNumber specifica il numero di token di output che non verranno passati ai outcommand specificati.
/ps SkipNumber
Fa sì che i token vengano ignorati ripetutamente ogni volta che viene elaborato un comando. Dopo ogni passaggio di un token agli OutCommands specificati, un numero di token uguale al valore di SkipNumber verrà ignorato.
Variabile
Specifica un nome di variabile. Questa variabile verrà usata per contenere l'output di ogni comando nella stringa InCommands . È possibile fare riferimento a Variable per nome nei parametri passati a OutCommands. È possibile usare qualsiasi stringa alfanumerica, anche se non è consigliabile usare una stringa che può passare anche per un numero esadecimale valido o un comando debugger. Se il nome usato per Variable corrisponde a una variabile globale esistente, a una variabile locale o a un alias, i relativi valori non saranno interessati dal comando foreach .
InCommands
Specifica uno o più comandi il cui output verrà analizzato; i token risultanti verranno passati a OutCommands. L'output di InCommands non viene visualizzato.
InString
Usato con /s. Specifica una stringa che verrà analizzata; i token risultanti verranno passati a OutCommands.
Infile
Usato con /f. Specifica un file di testo che verrà analizzato; i token risultanti verranno passati a OutCommands. Il nome file InFile deve essere racchiuso tra virgolette.
OutCommands
Specifica uno o più comandi che verranno eseguiti per ogni token. Ogni volta che si verifica la stringa variabile , verrà sostituita dal token corrente.
Nota Quando la variabile stringa viene visualizzata all'interno di OutCommands, deve essere racchiusa tra spazi. Se è adiacente a qualsiasi altro testo, anche una parentesi, non verrà sostituito dal valore del token corrente, a meno che non si usi il token ${ } (Alias Interpreter).
Informazioni aggiuntive
Per informazioni su altri token del flusso di controllo e sul relativo uso nei programmi di comando del debugger, vedere Uso dei programmi di comando del debugger.
Osservazioni:
Quando l'output di InCommands, la stringa InString o il file InFile viene analizzato, qualsiasi numero di spazi, tabulazioni o ritorni a capo viene considerato come un singolo delimitatore. Ogni parte di testo risultante viene usata per sostituire Variable quando viene visualizzata all'interno di OutCommands.
Di seguito è riportato un esempio di istruzione foreach che usa il comando dds per ogni token presente nel file myfile.txt:
0:000> .foreach /f ( place "g:\myfile.txt") { dds place }
I flag /pS e /ps possono essere usati per passare solo determinati token agli oggetti OutCommands specificati. Ad esempio, l'istruzione seguente ignora i primi due token nel file myfile.txt e quindi passa il terzo a dds. Dopo aver passato ogni token, ignora quattro token. Il risultato è che i dds verranno usati con i token 3rd, 8th, 13th, 18th e 23rd e così via:
0:000> .foreach /pS 2 /ps 4 /f ( place "g:\myfile.txt") { dds place }
Per altri esempi che usano il token foreach , vedere Esempi di programma di comandi del debugger.