我在ps中控制输出时遇到了一些问题。这是有问题的代码行;
$result|sort-object cn | format-table -wrap -autosize
如果我追加
| out-file $logfile
我输出的最后一列被截断了。现在我知道如果我改变了控制台会话的宽度并再次运行脚本,我的输出很好,但是必须有更好的方法吗?我也尝试使用add-content但我认为我必须遗漏一些东西,因为表达式没有被正确评估,我只是在我的日志文件中得到一系列对system-object的引用。
答案 0 :(得分:4)
您可以将-width参数用于out-file cmdlet。您可以尝试out-file -width 500,这样就不会被截断。
答案 1 :(得分:1)
到目前为止,我确定的最佳方法是使用Out-String,其中-Width的长度超过预期的整行数:
$result | Format-Table -Autosize | Out-String -Width 4096
上面唯一的问题是它会用空格填充整行。为了解决这个问题,请在每行添加-Stream开关和.Trim():
$result | Format-Table -Autosize | Out-String -Width 4096 -Stream | %{ $_.Trim() }
这对于使用clip.exe将结果传递到剪贴板也很好(如果我没有使用Out-Clipboard命令安装PSCX模块):
$result | Format-Table -Autosize | Out-String -Width 4096 -Stream | %{ $_.Trim() } | clip.exe