Преобразует свойства объекта из 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.