PowerShell
Разбор CSV
Поиск…
Основное использование Import-Csv
Учитывая следующий CSV-файл
String,DateTime,Integer
First,2016-12-01T12:00:00,30
Second,2015-12-01T12:00:00,20
Third,2015-12-01T12:00:00,20
Можно импортировать CSV-строки в объекты PowerShell с помощью команды Import-Csv
> $listOfRows = Import-Csv .\example.csv
> $listOfRows
String DateTime Integer
------ -------- -------
First 2016-12-01T12:00:00 30
Second 2015-11-03T13:00:00 20
Third 2015-12-05T14:00:00 20
> Write-Host $row[0].String1
Third
Импорт из CSV и свойств литья для исправления типа
По умолчанию Import-CSV
импортирует все значения в виде строк, поэтому для получения объектов DateTime- и integer-объектов нам нужно их отбирать или анализировать.
Использование Foreach-Object
:
> $listOfRows = Import-Csv .\example.csv
> $listOfRows | ForEach-Object {
#Cast properties
$_.DateTime = [datetime]$_.DateTime
$_.Integer = [int]$_.Integer
#Output object
$_
}
Использование рассчитанных свойств:
> $listOfRows = Import-Csv .\example.csv
> $listOfRows | Select-Object String,
@{name="DateTime";expression={ [datetime]$_.DateTime }},
@{name="Integer";expression={ [int]$_.Integer }}
Выход:
String DateTime Integer
------ -------- -------
First 01.12.2016 12:00:00 30
Second 03.11.2015 13:00:00 20
Third 05.12.2015 14:00:00 20
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow