2009-06-24 43 views
2

我有一个小问题,控制ps输出。这里是有问题的代码行;Powershell输出

$result|sort-object cn | format-table -wrap -autosize 

如果我追加

| out-file $logfile 

我输出的最后一列被截断。现在我知道,如果我改变了控制台会话的宽度并再次运行脚本,我的输出很好,但是一定有更好的方法来做到这一点?我也试图使用添加内容,但我想我必须缺少一些东西,因为表达式没有被正确评估,我只是在日志文件中获得了一系列对系统对象的引用。

+0

你可以尝试serverfault.com – AgileJon 2009-06-24 03:55:23

回答

4

您可以对out-file cmdlet使用-width参数。你可以试试out-file-500,所以没有任何东西被截断。

1

我到目前为止已经确定,最好的办法是使用输出字符串用-Width比预期的更长的整条生产线是:

$result | Format-Table -Autosize | Out-String -Width 4096 

上述唯一的问题是,它会用整个行填充空格。为了绕开这个问题,添加-stream开关和.Trim()的每一行:

$result | Format-Table -Autosize | Out-String -Width 4096 -Stream | %{ $_.Trim() } 

这也为管道的结果与clip.exe剪贴板(如果我没有漂亮的与外剪贴板命令安装PSCX模块):

$result | Format-Table -Autosize | Out-String -Width 4096 -Stream | %{ $_.Trim() } | clip.exe