v1.0
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.CountTotal de itens na lista.
$lista.IndexÍndice do item atual (0-based).
$lista.Firsttrue se é o primeiro item.
$lista.Lasttrue se é o último item.
$lista.RepeatsNúmero de vezes que o item atual foi repetido via Repeat.
$lista.$ItemValor do item atual (para listas simples: DirectoryFiles, SplitText, XmlNodeList, array).

Sintaxe
Foreach ($variavel) { ... }

Parâmetros

ParâmetroTipoObrigatórioDescrição
$variavelArray/ListaSimVariável de lista declarada previamente com CsvFile, DbQuery, AthusTable, DirectoryFiles, SplitText, etc.

Exemplos

AthusScript
// 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
    }
  }
}

Observações

A fonte de dados (comando List ou array) deve ser declarada ANTES do Foreach no mesmo escopo. O comando Break encerra o loop. O comando Continue avança para o próximo item. O comando Repeat reprocessa o item atual (incrementa .Repeats).