Comando
Foreach
Itera sobre os itens de uma lista: AthusTable, DbQuery, DirectoryFiles, CsvFile ou um array. Cada iteração carrega os dados do item atual na variável.
O comando Foreach adiciona propriedades especiais na variável, que são:
$lista.Count | Total de itens na lista. |
$lista.Index | Índice do item atual (0-based). |
$lista.First | true se é o primeiro item. |
$lista.Last | true se é o último item. |
$lista.Repeats | Número de vezes que o item atual foi repetido via Repeat. |
$lista.$Item | Valor do item atual (para listas simples: DirectoryFiles, SplitText, XmlNodeList, array). |
Foreach ($variavel) { ... }
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
$variavel | Array/Lista | Sim | Variável de lista declarada previamente com CsvFile, DbQuery, AthusTable, DirectoryFiles, SplitText, etc. |
Exemplos
// Iterar resultado de query:
DbQuery($q, 'SELECT Id, Nome FROM Clientes WHERE Ativo = 1')
Foreach ($q) {
Output($q.$Id + ' - ' + $q.$Nome)
}
// Iterar arquivos de uma pasta:
DirectoryFiles($files, @'C:\relatorios', '*.xlsx')
Foreach ($files) {
Output('Processando: ' + $files.$Item)
}
// Iterar CSV:
CsvFile($csv, @'C:\dados.csv', ';', true)
Foreach ($csv) {
Output($csv.$field1 + ' | ' + $csv.$field2)
}
// Iterar array:
array $lista = ['a', 'b', 'c']
Foreach ($lista) {
Output($lista.Index + ': ' + $lista.$Item)
}
// Com Repeat para retry de item com erro:
DbQuery($pedidos, 'SELECT Id FROM Pedidos')
Foreach ($pedidos) {
Try {
// processar $pedidos.$Id
}
Catch {
If ($pedidos.Repeats < 3) {
Repeat
}
}
}