【问题标题】:get serial com port description in windows batch在 Windows 批处理中获取串行 com 端口描述
【发布时间】:2015-01-05 03:01:55
【问题描述】:

我想检索设备管理器显示的串行 com 端口信息。例如,“英特尔(R) 主动管理技术 - SOL (COM3)”。 我知道使用命令“mode”来检索串口列表,但没有像“Intel(R) Active Management Technology - SOL”这样的描述。如何在 windows 批处理文件中获取此信息?

【问题讨论】:

    标签: windows batch-file serial-port


    【解决方案1】:

    更新答案

    ... 由下面 cmets 中的原始提问者提供。显然Win32_SerialPort 不包括 USB-> 串行设备。 William 对此的解决方案是改为查询 Win32_PnPEntity。

    只是为了让我仍然觉得有用,这里有一种方法可以抓取该列表并将每一行设置为一个变量:

    @echo off
    setlocal
    
    :: wmic /format:list strips trailing spaces (at least for path win32_pnpentity)
    for /f "tokens=1* delims==" %%I in ('wmic path win32_pnpentity get caption /format:list ^| find "COM"') do (
        call :setCOM "%%~J"
    )
    
    :: display all _COM* variables
    set _COM
    
    :: end main batch
    goto :EOF
    
    :setCOM <WMIC_output_line>
    :: sets _COM#=line
    setlocal
    set "str=%~1"
    set "num=%str:*(COM=%"
    set "num=%num:)=%"
    set str=%str:(COM=&rem.%
    endlocal & set "_COM%num%=%str%"
    goto :EOF
    

    原答案

    将wmic 与Win32_SerialPort 一起使用,如下所示:

    @echo off
    setlocal
    
    for /f "delims=" %%I in ('wmic path Win32_SerialPort get DeviceID^,Caption^,Description^,Name^,ProviderType /format:list ^| find "="') do (
        set "%%I"
    )
    
    echo %DeviceID%
    echo %Caption%
    echo %Description%
    echo %Name%
    echo %ProviderType%
    

    请参阅Win32_SerialPort 的文档以了解您可以查询哪些其他属性。我将把它作为练习留给你,让你找到一种方法来唯一地设置变量,这样你就不会用每个 COM 端口上的迭代来覆盖它们。尽情享受吧!

    【讨论】:

    • 此脚本未列出 USB 等设备 -> RS232 虚拟 COM 端口。
    • @LynnCrumbling 到目前为止,我发现的最接近的解决方案是Win32_USBControllerDevice documentation page 上的 PowerShell sn-p,如下所示:powershell -command "gwmi Win32_USBControllerDevice |%{[wmi]($_.Dependent)} | Sort Manufacturer,Description,DeviceID | Ft -GroupBy Manufacturer Description,Service,DeviceID"(可能需要 % 双抽在批处理脚本中)。不知道如何将其转换为 wmic,但 PowerShell cmdlet 可能会被按摩以拨入您想要的结果。
    • @rojo,我发现也许我们可以使用 Win32_PnPEntity:wmic path win32_pnpentity get caption /format:table | find "COM"
    【解决方案2】:

    请使用mode 命令获取可用 COM 端口的详细信息..

    【讨论】:

    • 哇!这是一个很好的命令......它提供了除了端口描述之外的所有内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2011-12-24
    • 1970-01-01
    相关资源
    最近更新 更多