2013-12-06 2 views
2

Когда я использую autosize, он фиксирует только последний столбец, а затем разбивает первый столбец, означающий, что все значения отображаются для последнего столбца и половина пути, нарезанного значением для первого столбца. Есть ли какое-либо исправление для этого?Почему powershell сокращает значения столбцов?

Get-SPSite -WebApplication http://contoso.intranet.com -Limit All | where {$_.RootWeb.Created -ge $Yesterday -And $_.RootWeb.Created -lt $Tomorrow} | ft Url, @{Name='Created';Expression={$_.RootWeb.Created}},@{label="Size in MB";Expression={$_.usage.storage/1MB}} | Format-Table -Wrap -AutoSize 

ответ

3

Format-Table -Autosize ограничена по ширине вашего буфера экрана. Один из вариантов - вывести его в текстовый файл или использовать Out-GridView, а не Format-Table

например.

Get-SPSite -WebApplication http://contoso.intranet.com -Limit All 
| where {$_.RootWeb.Created -ge $Yesterday -And $_.RootWeb.Created -lt $Tomorrow} 
| ft Url, @{Name='Created';Expression={$_.RootWeb.Created}},@{label="Size in MB";Expression={$_.usage.storage/1MB}} 
| Format-Table -Wrap -AutoSize 
| Out-String -Width 4096 ` 
| Out-File C:\SPSites.txt 

или

Get-SPSite -WebApplication http://contoso.intranet.com -Limit All 
| where {$_.RootWeb.Created -ge $Yesterday -And $_.RootWeb.Created -lt $Tomorrow} 
| ft Url, @{Name='Created';Expression={$_.RootWeb.Created}},@{label="Size in MB";Expression={$_.usage.storage/1MB}} 
| Out-GridView 
1

Вы передаете вывод format-tableformat-table другому, который может быть причиной проблемы. Попробуйте заменить первый с select-object, команда должна выглядеть точно так же иначе:

select-object Url, @{Name='Created';Expression={$_.RootWeb.Created}},@{label="Size in MB";Expression={$_.usage.storage/1MB}} 
+1

Или просто поместите параметры -AutoSize -Wrap на первый формат-таблицу и полностью избавитесь от второй таблицы Format. –

+0

@keith oh yeah (хлопая ладонью по лбу) – zdan

1

Избавьтесь от -autosize. Это побеждает цель -Wrap. Я также согласен с zdan и Keith Hill в том, что нет причин для подключения одного Format-Table к другому, и вы должны просто добавить коммутаторы в первый экземпляр.

Итак, попробуйте следующее:

Get-SPSite -WebApplication http://contoso.intranet.com -Limit All | ?{$_.RootWeb.Created -ge $Yesterday -And $_.RootWeb.Created -lt $Tomorrow} | ft -Wrap Url, @{n='Created';e={$_.RootWeb.Created}},@{n="Size in MB";e={$_.usage.storage/1MB}} 

(я сокращенная некоторые вещи, чтобы уменьшить скроллинг Также, AFAIK «Name» и «Label» являются взаимозаменяемыми в футов спецификации формата, просто указав, что из-за. Я заметил, что вы использовали один из каждого.)

0
$pshost = get-host 
$pswindow = $pshost.ui.rawui 
$newsize = $pswindow.buffersize 
$newsize.height = 3000 
$newsize.width = 3000 
$pswindow.buffersize = $newsize 

Добавить это в верхней части вашего скрипта, исправляет проблемы длины :) его общий хак, но работает :)

0

Возможно, это полный взлом, но вместе с ft -autosize выполняет отличную работу, которую я искал.

(...)

$list2 | Select-Object -ExpandProperty VersionInfo | Sort-Object -Property FileName | format-table -autosize > $filePath\dir.txt 

(...)

Большое спасибо за усилия !!!

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