Чтобы меньше проблем с изменением CSV-файла,
без знания или изменения порядка столбцов,
Вы можете использовать следующий скрипт.
- 1-е чтение в оригинальном заголовке
- после замены столбца
Date
на переформатированный с вычисляемым свойством
(иначе будет последний столбец)
- восстанавливает предыдущий ордер с дополнительным
Select-Object
## Q:\Test\2019\06\10\SO_56528528.ps1
$CsvIN = '.\Sample.csv'
$CsvOut = '.\NewSample.csv'
$Header = (Get-Content $CsvIn -Head 1).split(',')
Import-Csv $CsvIn |
Select-Object *,@{n='Date';e={(Get-Date $_.Date).ToString('yyyy\-MM\-dd')}} -ExcludeProperty Date |
Select-Object $Header |
Export-Csv $CsvOut -NoTypeInformation
> Get-Content .\Sample.csv
foo,bar,Date,baz
abc,def,7/30/2019,ghi
> Get-Content .\NewSample.csv
"foo","bar","Date","baz"
"abc","def","2019-07-30","ghi"