打开powershell窗口,执行命令: Get-PnpDevice -Class 'USB','Ports' -PresentOnly | Format-Table InstanceId,Status,FriendlyName , 输出如下图所示:
命令本意是获取PC上的USB和端口(串口、并口)设备列表,包括硬件实例ID、状态、显示名称 3列内容。但是当窗口宽度不够的时候,输出内容被阶段了,第一列输出不完成,后两列根本就没有输入。如果我们保存这些输出用于文本解析,那就出问题了。
通过阅读官方文档(Out-String (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn), 发现使用Out-String命令可以解决问题,也就是在原来的命令后面增加 " | Out-String -Width 1024" 即可,其中1024是行宽,可按需调整大小。预计执行结果见下图:
如果重定向文件输出,则执行命令:Get-PnpDevice -Class 'USB','Ports' -PresentOnly | Format-Table InstanceId,Status,FriendlyName | Out-String -Width 1024 > 111.txt
文件内容是完整的,执行结果见下图:
综上所述,问题解决!!!