Преобразует свойства объекта из CSV-формата (с разделителями-запятыми) в CSV-версии исходных объектов.

Синтаксис

ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]

ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]

Описание

Командлет ConvertFrom-CSV создает объекты из CSV-строк переменной длины, созданных с помощью командлета ConvertTo-CSV.

Параметры командлета ConvertFrom-CSV позволяют задать строку заголовков столбцов, определяющую имена свойств конечных объектов, задать разделитель элементов или сделать так, чтобы командлет ConvertFrom-CSV использовал в качестве разделителя значений установленный для текущей культуры разделитель элементов списков.

Объекты, создаваемые командлетом ConvertFrom-CSV, являются CSV-версиями исходных объектов. Значения свойств CSV-объектов являются строковыми версиями значений свойств исходных объектов. У CSV-версий объектов нет методов.

Можно также преобразовывать объекты в строки CSV в файле и обратно, используя для этого командлеты Export-CSV и Import-CSV. Эти командлеты очень похожи на командлеты ConvertTo-CSV и ConvertFrom-CSV за тем лишь исключением, что они сохраняют CSV-строки в файл.

Параметры

-Delimiter <char>

Задает разделитель значений свойств в строках CSV. По умолчанию используется запятая (,). Введите символ, например двоеточие (:). Чтобы задать точку с запятой (;), заключите ее в кавычки.

Если указать символ, отличный от разделителя, используемого в строках CSV, командлет ConvertFrom-CSV не сможет создать объекты из строк CSV. Вместо этого он возвращает строки.

Обязательно?

false

Позиция?

2

Значение по умолчанию

','

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Header <string[]>

Задает строку заголовков столбцов для импортируемой строки. Заголовки столбцов определяют имена свойств объекта, создаваемого с помощью командлета ConvertFrom-CSV.

Введите список заголовков столбцов, разделенных запятыми. Заключите каждый элемент в кавычки (одиночные или двойные). Не заключайте строку заголовка в кавычки. Если количество введенных заголовков столбцов меньше, чем количество столбцов, у оставшихся столбцов не будет заголовков. Если количество заголовков столбцов превышает количество столбцов, лишние заголовки игнорируются.

При использовании параметра Header пропустите строку заголовков столбцов из строк CSV. В противном случае командлет ConvertFrom-CSV создаст из элементов строки заголовков лишний объект.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-InputObject <PSObject[]>

Задает строки CSV для преобразования в объекты. Укажите переменную, содержащую строки CSV, либо введите команду или выражение, получающие их. Кроме того, можно передать CSV-строки командлету ConvertFrom-CSV по конвейеру.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue, ByPropertyName)

Принимать подстановочные знаки?

false

-UseCulture

Использовать в качестве разделителя в строках разделитель элементов списка из текущей культуры. По умолчанию используется запятая (,).

Чтобы найти разделитель элементов списка для текущей культуры, воспользуйтесь следующей командой: (Get-Culture).TextInfo.ListSeparator. Если указать символ, отличный от разделителя, используемого в строках CSV, командлет ConvertFrom-CSV не сможет создать объекты из строк CSV. Вместо этого он возвращает строки.

Обязательно?

true

Позиция?

named

Значение по умолчанию

Comma

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.String

Строки CSV можно перенаправить в конвейер ConvertFrom-CSV.

Выходные данные

System.Management.Automation.PSObject

Командлет ConvertFrom-CSV возвращает объекты, описываемые свойствами в строках CSV.

Примечания

Поскольку импортируемые объекты являются CSV-версиями типа объекта, они не распознаются и не форматируются записями форматирования типов Windows PowerShell, которые используются для форматирования объектов данного типа, не являющихся CSV-версиями.

В формате CSV каждый объект представляется списком разделенных запятыми значений свойств этого объекта. Значения свойств преобразуются в строковый формат (с помощью метода ToString() объекта), поэтому они обычно представляются именами значений свойств. Командлет ConvertTo-CSV не экспортирует методы объекта.

Пример 1

C:\PS>$p = get-process | convertto-csv

C:\PS> $p | convertfrom-csv

Описание
-----------
Эти команды преобразуют процессы на локальном компьютере в формат CSV, а затем восстанавливают их в виде объектов.

Первая команда с помощью командлета Get-Process получает выполняющиеся на локальном компьютере процессы. С помощью оператора конвейера (|) они передаются командлету ConvertTo-CSV, который переводит объекты процессов в формат CSV. Строки CSV сохраняются в переменной $p.

Вторая команда с помощью оператора конвейера передает строки CSV из переменной $p в командлет ConvertFrom-CSV. Этот командлет преобразует строки CSV в CSV-версии исходных объектов процессов.






Пример 2

C:\PS>$date = get-date | convertto-csv -delimiter ";"

C:\PS> convertfrom-csv -inputobject $date -delimiter ";"

Описание
-----------
Эти команды преобразуют объект данных в формат CSV, а затем в формат CSV-объекта.

Первая команда с помощью командлета Get-Date получает текущее значение даты и времени. Оператор конвейера (|) передает дату командлету ConvertTo-CSV, который преобразует объект даты в набор строк CSV. Параметр Delimiter используется в этой команде для указания разделителя в виде точки с запятой. Строки сохраняются в переменной $date.

Вторая команда использует командлет ConvertFrom-CSV, чтобы преобразовать строки CSV в переменной $date обратно в формат объекта. Команда использует параметр InputObject, чтобы задать строки CSV, и параметр Delimiter, чтобы задать разделитель в виде точки с запятой.






Пример 3

C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv

C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"

# Delete header from $j
C:\PS> $j = $j[0], $j[2..($j.count - 1)]

$j | convertfrom-csv -header $header

MoreData      : True
StatusMessage : 
Location      : localhost
Command       : get-process
State         : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2
SessionId     : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.String]
Debug         : System.Management.Automation.PSDataCollection`1[System.String]
Warning       : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged  :

Описание
-----------
В этом примере показано, как с помощью параметра Header командлета ConvertFrom-Csv изменять имена свойств в конечном импортированном объекте.

Первая команда с помощью командлета Start-Job запускает на локальном компьютере фоновое задание, выполняющее команду Get-Process. С помощью оператора конвейера (|) полученный объект задания передается командлету ConvertTo-CSV, который преобразует его в формат CSV. С помощью оператора присваивания (=) полученные данные CSV сохраняются в переменной $j.

Вторая команда сохраняет заголовок в переменной $header. В отличие от заголовка по умолчанию, в этом заголовке вместо имени "HasMoreData" используется имя "MoreData", а вместо имени "JobStateInfo" — имя "State".

Третья команда удаляет исходный заголовок (вторая строка) из строк CSV и возвращает его в переменную $j.

Четвертая команда с помощью командлета ConvertFrom-CSV преобразует строки CSV в CSV-версию объекта задания. Команда пересылает содержимое переменной $j в командлет ConvertFrom-CSV с помощью оператора конвейера (|). Полученный объект имеет свойства "MoreData" и "State", как и было указано в заголовке.






Пример 4

C:\PS>(get-culture).textinfo.listseparator

C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture

Описание
-----------
Команда использует командлет ConvertFrom-CSV, чтобы преобразовать строки CSV объекта-службы, которые были получены с помощью командлета ConvertTo-CSV. В этой команде параметр UseCulture используется для того, чтобы командлет ConvertFrom-CSV использовал в качестве разделителя значений разделитель элементов списка текущей культуры.

При использовании параметра UseCulture необходимо проследить за тем, чтобы разделитель элементов списка текущей культуры совпадал с разделителем, используемым в строках CSV. В противном случае командлету ConvertFrom-CSV не удастся создать объекты на основании строк CSV.

В этом примере команда Get-Culture служит для проверки разделителя элементов списка перед использованием команды ConvertFrom-CSV.






См. также




Содержание