PowerShell查询COM口时如何让Get-WMIObject仅输出DeviceID列
解决方法
你只需要调整Select-Object的参数,仅保留你需要输出的DeviceID字段即可,过滤逻辑可以放在字段选择之前执行,不影响筛选结果。
修改后的完整代码如下:
Set-ExecutionPolicy Bypass -Scope CurrentUser try { Get-WMIObject Win32_SerialPort | Where-Object{$_.PNPDeviceID -like "*$env:asset*"} | Select-Object DeviceID } catch{ Write-Warning "Nessuna porta COM trovata, assicurarsi che il dispositivo sia correttamente collegato" $LASTEXITCODE = 1 exit $LASTEXITCODE }
修改说明
- 原代码先选择了
DeviceID和PNPDeviceID两个字段再做过滤,会导致两个字段都被输出 - 修改后先执行
Where-Object过滤逻辑,再用Select-Object仅选择需要输出的DeviceID字段,输出结果和你预期的格式完全一致 - 如果你不需要表头和分割线,只想直接输出COM号的纯文本,可以把
Select-Object DeviceID替换为Select-Object -ExpandProperty DeviceID即可
内容的提问来源于stack exchange,提问作者BR1
相关产品推荐
相关产品推荐

