如何通过程序(如CMD)获取指定FTDI USB串口转换器的COM端口号
当然可以!用CMD或者PowerShell脚本完全能自动提取目标FTDI串口的COM端口号,不用手动去设备管理器找。下面给你几个实用的方案:
方法1:纯CMD环境下的WMIC命令
WMIC是Windows自带的命令行工具,能直接查询硬件设备信息,非常适合做脚本自动化。
基础查询命令
如果你的FTDI设备描述里包含"FTDI"和"串口转换器A",可以用这条命令直接列出匹配的设备及COM端口:
wmic path Win32_PnPEntity where "Caption like '%FTDI%' and Caption like '%串口转换器A%'" get Caption
执行后会输出类似这样的结果:
USB Serial Converter A (COM3)
提取纯COM端口号的脚本
如果需要单独提取COM3这类端口号(方便后续脚本调用),可以用嵌套的for命令过滤结果:
@echo off set "com_port=" for /f "tokens=* skip=1" %%a in ('wmic path Win32_PnPEntity where "Caption like '%FTDI%' and Caption like '%串口转换器A%'" get Caption') do ( for /f "tokens=3 delims=()" %%b in ("%%a") do ( set "com_port=%%b" goto :found ) ) :found if defined com_port ( echo 找到目标COM端口:%com_port% ) else ( echo 未找到匹配的FTDI串口转换器A )
这个脚本会自动提取括号里的COM号,直接输出结果,适合集成到批处理工作流里。
方法2:PowerShell脚本(更灵活精准)
PowerShell对文本处理的能力更强,适合复杂的设备筛选场景:
快速查询命令
# 匹配包含FTDI和串口转换器A的设备,提取友好名称 Get-PnpDevice | Where-Object { $_.FriendlyName -match 'FTDI' -and $_.FriendlyName -match '串口转换器A' } | Select-Object FriendlyName
直接提取纯COM端口号
如果只需要端口号字符串,可以用正则替换:
$comPort = (Get-PnpDevice | Where-Object { $_.FriendlyName -match 'FTDI.*串口转换器A' }).FriendlyName -replace '.*\(COM(\d+)\).*', 'COM$1' echo "目标COM端口:$comPort"
注意事项
- 请确保命令里的关键词(比如
串口转换器A)和你在设备管理器里看到的设备名称完全一致,否则会匹配不到。 - 如果你的FTDI设备描述里没有"串口转换器A",可以换成设备的其他唯一标识(比如硬件ID的部分字段)来精准筛选。
内容的提问来源于stack exchange,提问作者rookie
相关产品推荐
相关产品推荐

