Aqui está um script do PowerShell para atualizar vários arquivos CSV de uma pasta específica em uma única etapa.
ForEach ($file in Get-ChildItem "C:\myFolder" -filter "*.csv"){
Get-Content $file.Fullname | ForEach {
$arLine = $_ -split ","
$date = [DateTime]$arLine[2]
$arLine[2] = $date.ToString(" dd-MMM-yyyy HH:mm:ss")
[array]$arFile += $arLine -join ","
}
$arFile | Out-File $file.Fullname
clear-variable arFile
}
O que faz
- Itera cada arquivo em uma determinada pasta e filtra apenas arquivos CSV
- Leia em cada CSV e faça um loop por cada linha
- Divida cada linha em uma matriz. A vírgula é nosso delimitador
- Converta a string de data, por exemplo,
01/27/2001 01:00:00 PM
em um objeto de data do PowerShell. - Formate o objeto de data e grave-o de volta no array.
[2]
representa o terceiro valor / coluna porque começamos a contar a zero - Junte todos os valores da linha atual para obter uma única string. Use vírgula como delimitador
- Adicione todas as linhas a um único array para que possamos escrevê-las todas de uma vez em um arquivo
- Prossiga com o próximo arquivo CSV