#powershell
Вопрос:
Я попытался экспортировать результат экрана в файл. На экране выводится 5 столбцов с усеченной информацией:
$Printers = Get-Printer *
Foreach ($Printer in $Printers){Get-PrintConfiguration -PrinterName $Printer.name}
Я попытался сделать размер столбца достаточно широким, используя формат-таблица-автоматическое изменение размера, вывод стал 1 таблицей на принтер:
$Printers = Get-Printer *
Foreach ($Printer in $Printers){Get-PrintConfiguration -PrinterName $Printer.name | Format-Table -Autosize}
Но если я экспортирую его в csv, он превратится в огромный файл, и многие строки не будут иметь для меня смысла:
$filename = 'PrintConfiguration'
$Printers = Get-Printer *
Foreach ($Printer in $Printers){Get-PrintConfiguration -PrinterName $Printer.name | Export-Csv d:$((Get-Date).ToString('yyyy-MM-dd'))_${env:COMPUTERNAME}_$filename.csv -Append -NoTypeInformation}
Файл CSV размером 366 КБ для системы с 5 принтерами
Что я сделал не так и как я могу это исправить?
Комментарии:
1. Попробуйте выйти за
Export
пределы своейforeach
петли. Кроме того, что означает » это становится огромным файлом, и многие строки для меня не имеют смысла «?2. Для этой системы из 5 принтеров CSV имеет размер 366 Кб. Пожалуйста, посмотрите пример на моем оригинальном посте.
3. Затем экспортируйте только нужные вам поля, используя Select-Object, перед экспортом
4.
Get-Printer | Get-PrintConfiguration | Select-Object -ExcludeProperty PrintCapabilitiesXML | Export-Csv d:$((Get-Date).ToString('yyyy-MM-dd'))_${env:COMPUTERNAME}_$filename.csv -Append -NoTypeInformation
5. @Daniel, Спасибо, и я обнаружил, что мне нужно добавить звездочку для объекта Select-Object с свойством-ExcludeProperty, как показано ниже:
Foreach ($Printer in $Printers){Get-PrintConfiguration -PrinterName $Printer.name | Select-Object * -ExcludeProperty PrintCapabilitiesXML | Export-Csv d:$((Get-Date).ToString('yyyy-MM-dd'))_${env:COMPUTERNAME}_$filename.csv -Append -NoTypeInformation}