В PowerShell для экспорта массивов данных в CSV файлы можно использовать командлет Export-CSV . В этой статье мы покажем, как экспортировать данные в CSV файл и добавить в него дополнительные строки.
Следующая команда экспортирует список служб Windows в CSV файл:
Get-Service |select-object Name,DisplayName,Status | Export-CSV "C:PSservices.CSV" -NoTypeInformation -Encoding UTF8
Откройте полученный CSV файл с помощью любого текстового редактора. Как вы видите, в первой строке указаны названия столбцов (атрибуты объекта PowerShell, в нашем примере вы выбрали определенные поля с помощью select-object), и далее построчно идут данные, разделенные запятыми.
По-умолчанию в качестве разделителя (делиметера) в CSV используется запятая. Вы можете задать другой разделитель (точку с запятой, двоеточие и т.д.) с помощью параметра –Delimiter .
Например, укажем что в качестве разделителя нужно использовать точку с запятой:
Get-Service | Export-CSV "C:PSservices.CSV" -NoTypeInformation -Encoding UTF8 -Delimiter ";"
Вы можете использовать разделитель в зависимости от региональных настроек Windows. Для этого используется параметр -UseCulture .
Get-Process | Export-Csv "c:psprocess.csv" -UseCulture
(Get-Culture).TextInfo.ListSeparator
По умолчанию командлет Export-CSV создает новый CSV файл (если файл уже существует, он перезаписывается/заменяется новым). Если вы хотите добавить новые строки в уже существующий CSV файл, нужно использовать параметр -Append.
Например, вы хотите по расписанию запускать PowerShell скрипт, который проверяет свободное место на диске и добавляет текущее значение в CSV файл:
$cur_time=get-date -Format u
$freedisksize=Get-CimInstance -Class Win32_LogicalDisk |Where-Object {$_.DeviceID -eq "C:"} |select DeviceID,FreeSpace
Теперь нужно добавить дату в таблицу (объект) в качестве одного из полей:
$freedisksize| add-member -membertype NoteProperty -name Date -value $cur_time
Экспорт объекта PowerShell в CSV файл:
$freedisksize| Export-Csv -Path C:psfreespace.csv -Delimiter ";" -NoTypeInformation -Append
Также вы можете использовать следующие дополнительные параметры Export-CSV:
#TYPE System.Diagnostics.Process
или #TYPE System.Service.ServiceController
). Начиная с PowerShell 6 информация TYPE в заголовке не выводится по-умолчанию; В дальнейшем вы можете обрабатывать полученный CSV файл в Excel или других программах.
Командлет Export-CSV часто используется для построения различных табличных выгрузок и отчетов. Ниже несколько примеров полезных отчетов для системного администратора, которые можно сформировать с помощью Export-CSV:
Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…
Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…
Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…
The AC power adapter wattage and type cannot be determined — причины и решение При…
Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…
Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…