代码之家  ›  专栏  ›  技术社区  ›  rookie

获取usb串行FTDI的COM端口号

  •  0
  • rookie  · 技术社区  · 7 年前

    我有一个FTDI usb串行接口,我对在上获取分配给设备的COM端口感兴趣 USB serial converter A 。是否有一种方法可以通过编程(比如cmd)列出这些信息,以提取与该位置对应的COM端口号。我可以在设备管理器属性中查看此信息,因此有没有办法通过脚本获取此信息?我确信我要连接的COM端口将位于串行转换器A上。 我正在查找usb设备的注册表项,我要连接的设备转到VCP0。缩小我的问题范围,从查询中获取COM编号的最佳方法是什么 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

    这给了我:

    HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM  
    \Device\VCP0    REG_SZ    COM9                                                                                                                                                      
    \Device\VCP1    REG_SZ    COM10
    

    编辑:我正在尝试获取的数据值 \Device\VCP0 使用此命令,但我认为我没有正确避开反斜杠:

    REG QUERY "HKLM:\HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" /v "\\Device\\VCP0"

    1 回复  |  直到 7 年前
        1
  •  2
  •   Compo    7 年前

    这里有一种方法:

    @Echo Off
    Set "CDev=VCP0"
    Set "RKey=HKLM\HARDWARE\DEVICEMAP\SERIALCOMM"
    Set "CNum="
    For /F "Skip=1 Tokens=3" %%A In (
        'Reg Query "%RKey%" /V "\Device\%CDev%" 2^>Nul') Do Set CNum=%%A
    If Not Defined CNum Exit /B
    Rem Your commands below here
    Echo %CNum%
    Timeout 5 >Nul
    

    您应该只需要在线修改设备名称 2 并从 Rem 线

    直接查询命令的可能更正如下:

    Reg Query "HKLM\HARDWARE\DEVICEMAP\SERIALCOMM" /V "\Device\VCP0"
    

    或:

    Reg Query "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" /V "\Device\VCP0"
    

    没有必要回避设备名称中的反斜杠,根键语法中也有一些混乱

    推荐文章