2014-02-11 7 views
2

Я использую Powershell для чтения различных конфигурационных файлов XML, а затем выводят вывод в хорошем табличном формате с помощью команды format-table -autosize и вывода в виде текстового файла.Powershell and format-table

Поскольку файлы конфигурации меняются время от времени, я обновляю эти текстовые файлы в нашем репозитории SVN каждый день, если есть какие-либо изменения. Что действительно приятно, так это то, что я могу вернуться и посмотреть историю, когда произошло определенное изменение конфигурации.

Одна из проблем, которые есть у меня, однако, иногда записи конфигурации являются «более широкими», чем предыдущие дни, и поэтому столбцы с одного дня становятся ближе к более широкому, чем раньше.

Мой вопрос: если у меня есть способ указать ширину по умолчанию для каждого столбца в команде format-table и полагаться на Powershell для автоматической настройки.

Я понимаю, что могу использовать таблицу форматирования или таблицу формата -autosize .... и я обнаружил, что использование -autosize кажется лучше, потому что в противном случае каждая строка и расстояние между столбцами очень расточительны.

Любые идеи или способы обойти это оценили бы. Большинство конфиги, по крайней мере, 10 столбцов или больше .... обычно содержащие URL-адреса, номера портов и т.д.

ответ

5

Вы можете использовать хэш-таблицу, чтобы указать ширину, например:

Get-Process -id $pid | 
    ft -prop @{n='Name';e={$_.Name};width=20},@{n='Id';e={$_.Id};w=8},@{n='PM';e={$_.PM};w=18} 

Обратите внимание, что n является не для Name, e не подходит для Expression и w не подходит для Width. Вы можете использовать короткую или длинную форму этих имен. Для полноты есть поле выравнивания (a), которое может быть либо Left, Center, либо Right. Эти параметры задокументированы в справке Format-Table по информации о параметре Property.

+0

Это невероятно полезно, и я с большим трудом боролся с этим, большое спасибо! – Rakha

Смежные вопросы