Import-Csv
(не Get-Csv
), для чтения данных CSV из файла и ConvertFrom-Csv
, для чтения данных CSV из string , выводит коллекцию пользовательских объектов (тип [pscustomobject]
) , свойства которых отражают столбцы данных CSV.
Для создания таких пользовательских объектов по требованию, чтобы имитировать Import-Csv
/ ConvertFrom-Csv
input , используйте синтаксис
[pscustomobject] @{ <propertyName>=<value>; ... }
(PSv3 +).
Например, для моделирования 2 строк данных CSV со столбцами Color
, Doors
,
и Convertible
:
[pscustomobject] @{ Color = 'Red'; Doors = 4; Convertible = $false },
[pscustomobject] @{ Color = 'Blue'; Doors = 5; Convertible = $false } |
...
Отдельно для того, чтобы функция могла вводить данные из конвейера объект за объектом через автоматическую переменную $_
, он должен иметь process { ...}
блок - см. Раздел справки about_Functions .
# Define the function body with a process { ... } block, which
# PowerShell automatically calls for each input object from the pipeline,
# reflected in automatic variable $_
function showThem { process { "Color: " + $_.Color } }
[pscustomobject] @{ Color = 'Red'; Doors = 4; Convertible = $false },
[pscustomobject] @{ Color = 'Blue'; Doors = 5; Convertible = $false } |
showThem
Примечание. В PowerShell echo
- это псевдоним Write-Output
, явное использование которого редко требуется; вместо этого функция использует неявный вывод PowerShell : результат конкатенации строк (+
) неявно становится выходом функции.
Вышеуказанные выходы:
Color: Red
Color: Blue