Powershell 截断了我的输出,我该如何让它永远不这样做?

Powershell 截断了我的输出,我该如何让它永远不这样做?

有时 powershell 命令产生的输出比控制台窗口宽。发生这种情况时,它会将多余的内容折叠成“...”,以便所有内容都适合控制台的宽度。

下面是该命令的一个示例get-filehash,但我猜想该问题适用于任何具有宽输出的命令: 截断的 powershell 命令输出示例

如果我把屏幕变宽,它不会填充之前缺失的内容。相反,我必须把屏幕变宽,然后再次运行命令,并希望我把控制台弄得“足够宽”。如果命令需要很长时间,这非常烦人。看... 控制台屏幕仍然不够宽!

有什么办法可以强制 powershell总是给我一个未截断版本的输出?

如果可能的话,我想将其配置为默认执行此操作,这样我就不必记住将其传送到另一个冗长且难以记住的命令行。

...更新...根据评论中的建议,我尝试通过管道传输到Ft -wrap -autosize,但仍然存在问题,我必须记住输入“ Ft -wrap -autosize

仍存在问题

...更新2... 到目前为止,@postanote 答案中的一个选项| Format-List -Force似乎是最好的。它需要最少的记忆和猜测...... 现在好多了!

答案1

您的屏幕缓冲区和 PS 默认格式化程序是造成此问题的根本原因。

不要默认显示表格。相反,强制显示为列表或使用自定义包装函数/模块。

# PS Default formatting
Get-FileHash -Path 'J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4' -Algorithm SHA512
# Results
<#
Algorithm       Hash                                                                   Path                                                                     
---------       ----                                                                   ----                                                                     
SHA512          3C174CDB0D322382028F47635D8D929AD052360093423C9031B35D1870271146381... J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4  
#>

# Select the properties you want - PS Default formatting
Get-FileHash -Path 'J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4' -Algorithm SHA512 | 
Select-Object -Property Algorithm, Hash
# Results
<#
Algorithm Hash                                                                                                                            
--------- ----                                                                                                                            
SHA512    3C174CDB0D322382028F47635D8D929AD052360093423C9031B35D187027114638128E62156DCC8ABFB35464F2A5B5F460993915F7E1B35A7885B0C3C0D5A699
#>

# Use List formatting
Get-FileHash -Path 'J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4' -Algorithm SHA512 | 
Format-List -Force
# Results
<#
Algorithm : SHA512
Hash      : 3C174CDB0D322382028F47635D8D929AD052360093423C9031B35D187027114638128E62156DCC8ABFB35464F2A5B5F460993915F7E1B35A7885B0C3C0D5A699
Path      : J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4
#>

Get-FileHash -Path 'J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4' -Algorithm SHA512 | 
Select-Object -Property Algorithm, Hash, Path | 
Format-List -Force
# Results
<#
Algorithm : SHA512
Hash      : 3C174CDB0D322382028F47635D8D929AD052360093423C9031B35D187027114638128E62156DCC8ABFB35464F2A5B5F460993915F7E1B35A7885B0C3C0D5A699
Path      : J:\MSBuild2018\BRK2100 .NET Overview & Roadmap-BRK2100_3000.mp4
#>

Find-Module -Name '*wrap*'

# Results
<#
Version              Name                                Repository           Description                                                                       
-------              ----                                ----------           -----------                                                                       
...
1.0.1                TextWrapping                        PSGallery            Commands for wrapping and unwrapping text.                                        
...
1.0.1                FormatWrap                          PSGallery            Formats the output as a text wrapping string.                                     
...#>

答案2

另一种方法是通过管道传输到Out-String并使用-Width范围。

Get-FileHash <file> | Out-String -Width 200

相关内容