ConvertFrom-Csv
Преобразует свойства объекта в формате CSV-файла в версии исходных объектов.
Синтаксис
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
ConvertFrom-Csv
-UseCulture
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
Описание
Командлет ConvertFrom-Csv
преобразует данные, разделенные символами (CSV), в объекты типа PSObject для каждой строки данных CSV. Новые объекты записываются в конвейер в том порядке, в который они считываются из данных CSV. Значения в строке заголовка столбца CSV становятся именами свойств, добавленных в каждый новый PSObject.
Создаваемые объекты ConvertFrom-Csv
представляют собой объект типа PSObject для каждой строки в CSV-файле. Значения свойств объектов CSV представляют собой строковые версии значений свойств исходных объектов. В CSV-версиях объектов нет методов.
Можно также использовать Export-Csv
командлеты и Import-Csv
командлеты для преобразования объектов в строки CSV в файле и обратно. Эти командлеты совпадают с ConvertTo-Csv
командлетами и ConvertFrom-Csv
командлетами, за исключением того, что они сохраняют строки CSV в файле.
Тип PSObject поддерживает порядок свойств в порядке заголовка столбца. Это означает, что при преобразовании объектов обратно в формат CSV вы получаете тот же порядок столбцов.
Примеры
Пример 1. Преобразование процессов на локальном компьютере в формат CSV
В этом примере показано, как преобразовать процессы на локальном компьютере в формат CSV, а затем восстановить их в форме объекта.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Командлет Get-Process
отправляет процессы вниз конвейера ConvertTo-Csv
. Командлет ConvertTo-Csv
преобразует объекты процесса в ряд строк CSV. Командлет ConvertFrom-Csv
преобразует строки CSV в версии CSV исходных объектов процесса.
Строки CSV сохраняются в переменной $P
.
Пример 2. Преобразование объекта данных в формат CSV, а затем в формат объекта CSV
В этом примере показано, как преобразовать объект данных в формат CSV, а затем в формат объекта CSV.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
Первая команда используется Get-Date
для отправки текущей даты и времени вниз конвейера ConvertTo-Csv
. Командлет ConvertTo-Csv
преобразует объект date в ряд строк CSV. Параметр разделителя используется для указания разделителя с запятой. Строки сохраняются в переменной $Date
.
Пример 3. Изменение имен свойств с помощью параметра заголовка
В этом примере показано, как использовать параметр ЗаголовкаConvertFrom-Csv
для изменения имен свойств в результирующем импортированном объекте.
$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command',
'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs',
'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress',
'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.count - 1)]
$J | ConvertFrom-Csv -Header $Header
State : Running
MoreData : True
StatusMessage :
Location : localhost
Command : Get-Process
StateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : a259eb63-6824-4b97-a033-305108ae1c2e
Id : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime : 12/20/2018 18:59:57
EndTime :
JobType : BackgroundJob
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.Management.Automation.VerboseRecord]
Debug : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]
Командлет запускает фоновое Start-Job
задание, которое выполняется Get-Process
. Объект задания отправляется по конвейеру ConvertTo-Csv
и преобразуется в строку CSV. Параметр NoTypeInformation удаляет заголовок сведений о типе из выходных данных CSV и необязателен в PowerShell версии 6 и выше. Переменная $Header
содержит пользовательский заголовок, который заменяет следующие значения по умолчанию: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime и PSJobTypeName. Переменная $J
содержит строку CSV и используется для удаления заголовка по умолчанию. Командлет ConvertFrom-Csv
преобразует строку CSV в PSCustomObject и использует параметр Заголовка для применения переменной $Header
.
Пример 4. Преобразование строк CSV объектов службы
В этом примере показано, как использовать командлет с параметром ConvertFrom-Csv
UseCulture .
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Командлет Get-Culture
использует вложенные свойства TextInfo и ListSeparator для получения разделителя списка по умолчанию текущего языка и региональных параметров. Командлет Get-Service
отправляет объекты службы вниз конвейера ConvertTo-Csv
. Объект ConvertTo-Csv
службы преобразует объекты службы в ряд строк CSV. Строки CSV хранятся в переменной $Services
. Командлет ConvertFrom-Csv
использует параметр InputObject и преобразует строки CSV из переменной $Services
. Параметр UseCulture использует разделитель списка по умолчанию текущего языка и региональных параметров.
Если используется параметр UseCulture, убедитесь, что разделитель списка по умолчанию текущего языка и региональных параметров соответствует разделителю, используемому в строках CSV. ConvertFrom-Csv
В противном случае не удается создать объекты из строк CSV.
Параметры
-Delimiter
Задает разделитель для значений свойств в строках CSV. По умолчанию используется запятая (,
). Введите символ, например двоеточие (:
). Чтобы указать точку с запятой (;
), заключите ее в одинарные кавычки.
Если в файле указан символ, отличный от фактического разделителя строк, ConvertFrom-Csv
не удается создать объекты из строк CSV и возвратить строки CSV.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Header
Указывает альтернативную строку заголовков столбцов для импортируемой строки. Заголовок столбца определяет имена свойств объектов, созданных с помощью ConvertFrom-Csv
.
Введите заголовки столбцов в виде разделенного символами списка. Не заключайте строку заголовка в кавычки. Заключите каждый заголовок столбца в одинарные кавычки.
Если ввести меньше заголовков столбцов, чем есть столбцы данных, остальные столбцы данных будут отключены карта. Если ввести больше заголовков столбцов, чем есть столбцы данных, дополнительные заголовки столбцов создаются с пустыми столбцами данных.
При использовании параметра заголовка опустите строку заголовка столбца из строк CSV. В противном случае этот командлет создает дополнительный объект из элементов в строке заголовка.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Задает строки CSV для преобразования в объекты. Укажите переменную, содержащую строки CSV, либо введите команду или выражение, получающие эти строки. Вы также можете передать строки ConvertFrom-Csv
CSV в .
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseCulture
Использует разделитель списка для текущего языка и региональных параметров в качестве разделителя элементов. Чтобы найти разделитель списка для языка и региональных параметров, используйте следующую команду: (Get-Culture).TextInfo.ListSeparator
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Вы можете передать строки CSV в этот командлет.
Выходные данные
Этот командлет возвращает объекты, описанные свойствами в строках CSV.
Примечания
В формате CSV каждый объект представлен символьным списком значений свойств объекта. Значения свойств преобразуются в строки, используя ToString()
метод объекта. Невозможно экспортировать методы объекта.
Связанные ссылки
PowerShell