Поделиться через


Export-Csv

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

Синтаксис

Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [[-Delimiter] <Char>]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [-UseCulture]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Описание

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

Не отформатируйте объекты перед отправкой в командлет Export-CSV. Если Export-CSV получает отформатированные объекты, CSV-файл содержит свойства формата, а не свойства объекта. Чтобы экспортировать только выбранные свойства объекта, используйте командлет Select-Object.

Примеры

Пример 1. Экспорт свойств процесса в CSV-файл

В этом примере выбираются объекты process с определенными свойствами, экспортируются объекты в CSV-файл.

Get-Process -Name WmiPrvSE |
    Select-Object -Property BasePriority,Id,SessionId,WorkingSet |
    Export-Csv -Path .\WmiData.csv -NoTypeInformation
Import-Csv -Path .\WmiData.csv

BasePriority Id    SessionId WorkingSet
------------ --    --------- ----------
8            976   0         20267008
8            2292  0         36786176
8            3816  0         30351360
8            8604  0         15011840
8            10008 0         8830976
8            11764 0         14237696
8            54632 0         9502720

Командлет получает объекты процесса . Параметр Name фильтрует выходные данные, чтобы включить только объекты процесса WmiPrvSE. Объекты процесса отправляются по конвейеру командлету Select-Object. использует параметр свойства для выбора подмножества свойств объекта процесса. Объекты процесса отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты процесса в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 2. Экспорт процессов в файл с разделителями-запятыми

Этот пример получает объекты process и экспортирует объекты в CSV-файл.

Get-Process | Export-Csv -Path .\Processes.csv -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

Командлет получает объекты процесса . Объекты процесса отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты процесса в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 3. Экспорт процессов в файл с разделителями с запятой

Этот пример получает объекты Process и экспортирует объекты в файл с разделителем с запятой.

Get-Process | Export-Csv -Path .\Processes.csv -Delimiter ';' -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

Командлет получает объекты процесса . Объекты процесса отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты процесса в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр разделителя указывает точку с запятой для разделения строковых значений. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 4. Экспорт процессов с помощью разделителя списка текущего языка и региональных параметров

Этот пример получает объекты процесса и экспортирует объекты в файл. Разделитель — это разделитель списка текущего языка и региональных параметров.

(Get-Culture).TextInfo.ListSeparator
Get-Process | Export-Csv -Path .\Processes.csv -UseCulture -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

Командлет Get-Culture использует вложенные свойства TextInfo и ListSeparator и отображает разделитель списка по умолчанию текущего языка и региональных параметров. Командлет получает объекты процесса . Объекты процесса отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты процесса в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр UseCulture использует разделитель списка по умолчанию текущего языка и региональных параметров в качестве разделителя. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 5. Экспорт процессов с сведениями о типе

В этом примере объясняется, как включить сведения о заголовке #TYPE в CSV-файл. Заголовок #TYPE используется по умолчанию в версиях до PowerShell 6.0.

Get-Process | Export-Csv -Path .\Processes.csv -IncludeTypeInformation
Get-Content -Path .\Processes.csv

#TYPE System.Diagnostics.Process
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","507","2203595001856","35139584","20934656","29504", ...

Командлет получает объекты процесса . Объекты процесса отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты процесса в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. IncludeTypeInformation включает заголовок сведений #TYPE в выходных данных CSV. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 6. Экспорт и добавление объектов в CSV-файл

В этом примере описывается экспорт объектов в CSV-файл и использование параметра добавления для добавления объектов в существующий файл.

$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status)
$AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation
Get-Content -Path .\Services.Csv
$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status)
$WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append
Get-Content -Path .\Services.Csv

"DisplayName","Status"
"Application Layer Gateway Service","Stopped"
"Application Identity","Running"
"Windows Audio Endpoint Builder","Running"
"Windows Audio","Running"
"Windows Event Log","Running"

Командлет Get-Service получает объекты службы. Параметр displayName возвращает службы, содержащие слово Application. Объекты службы отправляются в конвейер в командлет Select-Object. использует параметр свойства для указания свойств displayName и состояния. Переменная $AppService сохраняет объекты.

Объекты $AppService отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты службы в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Командлеты Get-Service и Select-Object повторяются для служб, содержащих слово Windows. Переменная $WinService сохраняет объекты службы. Командлет использует параметр добавления , чтобы указать, что объекты добавляются в существующий файл . Командлет Get-Content повторяется для отображения обновленного файла, включающего добавленные данные.

Пример 7. Форматирование командлета в конвейере создает непредвиденные результаты

В этом примере показано, почему не следует использовать командлет формата в конвейере. При получении непредвиденных выходных данных устраните неполадки синтаксиса конвейера.

Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear |
 Export-Csv -Path .\DateTime.csv -NoTypeInformation
Get-Content -Path .\DateTime.csv

"DateTime","Day","DayOfWeek","DayOfYear"
"Wednesday, January 2, 2019 14:59:34","2","Wednesday","2"

Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear |
 Export-Csv -Path .\FTDateTime.csv -NoTypeInformation
Get-Content -Path .\FTDateTime.csv

"ClassId2e4f51ef21dd47e99d3c952918aff9cd","pageHeaderEntry","pageFooterEntry","autosizeInfo", ...
"033ecb2bc07a4d43b5ef94ed5a35d280",,,,"Microsoft.PowerShell.Commands.Internal.Format. ...
"9e210fe47d09416682b841769c78b8a3",,,,,
"27c87ef9bbda4f709f6b4002fa4af63c",,,,,
"4ec4f0187cb04f4cb6973460dfe252df",,,,,
"cf522b78d86c486691226b40aa69e95c",,,,,

Командлет Get-Date получает объект DateTime. Объект отправляется по конвейеру в командлет Select-Object. Select-Object использует параметр свойства для выбора подмножества свойств объекта. Объект отправляется по конвейеру в командлет Export-Csv. Export-Csv преобразует объект в формат CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Командлет использует параметр пути для отображения CSV-файла, расположенного в текущем каталоге.

Когда командлет Format-Table используется в конвейере для выбора непредвиденных результатов свойств. Format-Table отправляет объекты формата таблицы вниз конвейера в командлет Export-Csv, а не объект DateTime. Export-Csv преобразует объекты формата таблицы в ряд строк CSV. Командлет Get-Content отображает CSV-файл, содержащий объекты формата таблицы.

Пример 8. Использование параметра Force для перезаписи файлов только для чтения

В этом примере создается пустой файл, доступный только для чтения, и для обновления файла используется параметр Force.

New-Item -Path .\ReadOnly.csv -ItemType File
Set-ItemProperty -Path .\ReadOnly.csv -Name IsReadOnly -Value $true
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation

Export-Csv : Access to the path 'C:\ReadOnly.csv' is denied.
At line:1 char:15
+ Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
+               ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (:) [Export-Csv], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand

Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation -Force
Get-Content -Path .\ReadOnly.csv

"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

Командлет использует параметры пути и ItemType для создания файла в текущем каталоге. Командлет использует параметры имени и значение для изменения свойства IsReadOnly на true. Командлет получает объекты процесса . Объекты процесса отправляются по конвейеру командлету Export-Csv. Export-Csv преобразует объекты процесса в ряд строк CSV. Параметр пути указывает, что файл сохраняется в текущем каталоге. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6. Выходные данные показывают, что файл не записывается, так как доступ запрещен.

Параметр force добавляется в командлет , чтобы принудительно выполнить экспорт записи в файл. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 9. Использование параметра Force с добавлением

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

$Content = [PSCustomObject]@{Name = 'PowerShell'; Version = '7.0'}
$Content | Export-Csv -Path .\ParmFile.csv -NoTypeInformation
$AdditionalContent = [PSCustomObject]@{Name = 'Windows PowerShell'; Edition = 'Desktop'}
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append

Export-Csv : Cannot append CSV content to the following file: ParmFile.csv.
The appended object does not have a property that corresponds to the following column:
Version. To continue with mismatched properties, add the -Force parameter, and then retry
 the command.
At line:1 char:22
+ $AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (Version:String) [Export-Csv], InvalidOperationException
+ FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell. ...

$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append -Force
Import-Csv -Path .\ParmFile.csv

Name               Version
----               -------
PowerShell         7.0
Windows PowerShell

Выражение создает PSCustomObject с свойствами имени и версии. Значения хранятся в переменной $Content. Переменная $Content отправляется по конвейеру командлету Export-Csv. использует параметр пути и сохраняет файл в текущем каталоге. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6.

Другое выражение создает PSCustomObject со свойствами имени и Edition. Значения хранятся в переменной $AdditionalContent. Переменная $AdditionalContent отправляется по конвейеру командлету Export-Csv. Параметр добавления используется для добавления данных в файл. Добавление завершается ошибкой, так как между версиями и Editionимеется несоответствие имени свойства.

Командлет Export-CsvForce используется для принудительного выполнения экспорта записи в файл. Свойство выпуска удаляется. Командлет использует параметр пути для отображения файла, расположенного в текущем каталоге.

Пример 10. Экспорт в CSV с кавычками вокруг двух столбцов

В этом примере объект dateTime преобразуется в строку CSV.

Get-Date | Export-Csv  -QuoteFields "DateTime","Date" -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv

DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019

Пример 11. Экспорт в CSV с кавычками только при необходимости

В этом примере объект dateTime преобразуется в строку CSV.

Get-Date | Export-Csv  -UseQuotes AsNeeded -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv

DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019

Пример 12. Преобразование хэш-файлов в CSV

В PowerShell 7.2 и более поздних версиях при экспорте хэш-таблицы в CSV ключи первой хэш-таблицы сериализуются и используются в качестве заголовков в выходных данных CSV-файла.

$person1 = @{
    Name = 'John Smith'
    Number = 1
}

$person2 = @{
    Name = 'Jane Smith'
    Number = 1
}

$allPeople = $person1, $person2
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv

"Name","Number"
"John Smith","1"
"Jane Smith","2"

Пример 13. Преобразование хэш-страниц в CSV с дополнительными свойствами

В PowerShell 7.2 и выше при экспорте хэш-таблицы с дополнительными свойствами, добавленными с помощью Add-Member или Select-Object дополнительные свойства также добавляются в виде заголовка в CSV-файле.

$allPeople | Add-Member -Name ExtraProp -Value 42 -MemberType NoteProperty
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv

"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"

Каждый хэш-файл имеет свойство с именем ExtraProp добавлено Add-Member, а затем экспортируется в CSV- файл. Теперь ExtraProp отображается заголовок в выходных данных CSV-файла.

Если добавленное свойство имеет то же имя, что и ключ из хэш-файла, ключ имеет приоритет, а только ключ экспортируется в CSV.

Параметры

-Append

Используйте этот параметр, чтобы Export-CSV добавляет выходные данные CSV в конец указанного файла. Без этого параметра Export-CSV заменяет содержимое файла без предупреждения.

Этот параметр появился в Windows PowerShell 3.0.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

Запрашивает подтверждение перед запуском командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Delimiter

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

Тип:Char
Position:1
Default value:comma (,)
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Encoding

Задает кодировку экспортированного CSV-файла. Значение по умолчанию — utf8NoBOM.

Допустимые значения для этого параметра приведены следующим образом:

  • ascii: использует кодировку для набора символов ASCII (7-разрядный).
  • bigendianunicode: кодирует в формате UTF-16 с помощью порядка байтов больших байтов.
  • bigendianutf32: кодирует в формате UTF-32 с помощью порядка байтов больших байтов.
  • oem. Использует кодировку по умолчанию для MS-DOS и консольных программ.
  • unicode: кодирует в формате UTF-16 с помощью байтового порядка маленьких байтов.
  • utf7: кодирует в формате UTF-7.
  • utf8: кодирует в формате UTF-8.
  • utf8BOM. Кодирование в формате UTF-8 с меткой порядка байтов (BOM)
  • utf8NoBOM. Кодирование в формате UTF-8 без метки порядка байтов (BOM)
  • utf32: кодирует в формате UTF-32.

Начиная с PowerShell 6.2, параметр кодировки также позволяет числовым идентификаторам зарегистрированных кодовых страниц (например, ) или строковым именам зарегистрированных кодовых страниц (например, ). Дополнительные сведения см. в документации по .NET для Кодировка.CodePage.

Заметка

UTF-7* больше не рекомендуется использовать. По состоянию на PowerShell 7.1 предупреждение записывается, если указать utf7 для параметра кодировки.

Тип:Encoding
Допустимые значения:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Force

Этот параметр позволяет Export-Csv перезаписывать файлы с помощью атрибута только для чтения.

При объединении параметров Force и Добавление объекты, содержащие несовпадные свойства, можно записать в CSV-файл. В файл записываются только соответствующие свойства. Несогласованные свойства удаляются.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-IncludeTypeInformation

Если этот параметр используется первая строка выходных данных CSV, содержит #TYPE за которым следует полное имя типа объекта. Например, #TYPE System.Diagnostics.Process.

Этот параметр появился в PowerShell 6.0.

Тип:SwitchParameter
Aliases:ITI
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Указывает объекты для экспорта в виде строк CSV. Введите переменную, содержащую объекты или введите команду или выражение, которое получает объекты. Можно также передать объекты в Export-CSV.

Тип:PSObject
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-LiteralPath

Указывает путь к выходному ФАЙЛу CSV. В отличие от пути, значение параметра LiteralPath используется точно так же, как он типизированный. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, используйте одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.

Тип:String
Aliases:PSPath, LP
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NoClobber

Используйте этот параметр, чтобы Export-CSV не перезаписывал существующий файл. По умолчанию, если файл существует в указанном пути, Export-CSV перезаписывает файл без предупреждения.

Тип:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NoTypeInformation

Удаляет заголовок сведений #TYPE из выходных данных. Этот параметр стал значением по умолчанию в PowerShell 6.0 и включен для обратной совместимости.

Тип:SwitchParameter
Aliases:NTI
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

Обязательный параметр, указывающий расположение для сохранения выходного файла CSV.

Тип:String
Position:0
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-QuoteFields

Указывает имена столбцов, которые должны быть кавычек. Если этот параметр используется, кавычекируются только указанные столбцы. Этот параметр был добавлен в PowerShell 7.0.

Тип:String[]
Aliases:QF
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UseCulture

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

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UseQuotes

Указывает, когда кавычки используются в CSV-файлах. Возможные значения:

  • Никогда - не цитировать ничего
  • Всегда — процитировать все (поведение по умолчанию)
  • AsNeeded — только поля с разделителями, двойные кавычки или новый символ

Этот параметр был добавлен в PowerShell 7.0.

Тип:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliases:UQ
Position:Named
Default value:Always
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

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

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

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

PSObject

Вы можете передать любой объект с адаптером расширенной системы типов (ETS) в этот командлет.

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

None

Этот командлет не возвращает выходные данные.

Примечания

PowerShell включает следующие псевдонимы для Export-Csv:

  • Все платформы:
    • epcsv

Командлет Export-CSV преобразует объекты, которые вы отправляете в ряд строк CSV и сохраняет их в указанном текстовом файле. Вы можете использовать Export-CSV -IncludeTypeInformation для сохранения объектов в CSV-файле, а затем использовать командлет Import-Csv для создания объектов из текста в CSV-файле.

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

Строки CSV выводятся следующим образом:

  • Если используется IncludeTypeInformation, первая строка содержит заголовок сведений #TYPE, за которым следует полное имя типа объекта. Например, #TYPE System.Diagnostics.Process.
  • Если IncludeTypeInformation не используется первая строка содержит заголовки столбцов. Заголовки содержат имена свойств первого объекта в виде разделенного символами списка.
  • Остальные строки содержат разделенные символами списки значений свойств каждого объекта.

Начиная с PowerShell 6.0 поведение Export-CSV по умолчанию не включает сведения #TYPE в CSV-файл и NoTypeInformation подразумевается. IncludeTypeInformation можно использовать для включения сведений #TYPE и эмулировать поведение по умолчанию Export-CSV до PowerShell 6.0.

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

Командлет Import-Csv можно использовать для повторного создания объектов из строк CSV в файлах. Результирующий объект — это CSV-версии исходных объектов, состоящих из строковых представлений значений свойств и без методов.

Командлеты ConvertTo-Csv и ConvertFrom-Csv преобразуют объекты в строки CSV и из строк CSV. Export-CSV совпадает с ConvertTo-CSV, за исключением того, что он сохраняет строки CSV в файле.