当我使用自动调整大小时,它只修复最后一列,然后它会打破第一列,这意味着所有值都显示在最后一列,第一列的中间切断值。有解决方法吗?
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
答案 0 :(得分:3)
Format-Table -Autosize
仅限于屏幕缓冲区的宽度。一种选择是将其输出到文本文件或使用Out-GridView
而不是Format-Table
e.g。
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 :(得分:1)
您正在将format-table
的输出传递给可能导致问题的另一个format-table
。尝试用select-object
替换第一个,否则命令应该完全相同:
select-object Url, @{Name='Created';Expression={$_.RootWeb.Created}},@{label="Size in MB";Expression={$_.usage.storage/1MB}}
答案 2 :(得分: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“名称”和“标签”可以在 ft 格式规格中互换;只是指出这一点因为我注意到你使用了其中一个。)
答案 3 :(得分:1)
$pshost = get-host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
$newsize.height = 3000
$newsize.width = 3000
$pswindow.buffersize = $newsize
将此添加到脚本的顶部,修复长度问题:)它完全破解但是有效:)
答案 4 :(得分:1)
这给出了您可能期望的那种输出:
[command] | Format-Table -AutoSize | Out-String -Width 10000 #| clip.exe
例如,试试这个:
Get-ChildItem -Path "." | Select-Object * | Format-Table -AutoSize | Out-String -Width 10000 #| clip.exe
Format-Table -AutoSize
符合预期的输出大小或元素的大小较小者。由于您的输出可能小于10,000个字符宽,因此该命令应该适合您的数据。
注意:clip.exe
是一个内置的Windows命令,可以让您管道到剪贴板。
答案 5 :(得分:0)
也许,这完全是黑客攻击,但与ft -autosize
一起完成了我正在寻找的工作。
(...)
$list2 | Select-Object -ExpandProperty VersionInfo | Sort-Object -Property FileName | format-table -autosize > $filePath\dir.txt
(...)