在Windows批处理中获取串行com端口描述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows批处理中获取串行com端口描述相关的知识,希望对你有一定的参考价值。

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

答案

Updated answer

......由原始提问者在下面的评论中提供。显然Win32_SerialPort不包括USB->串行设备。威廉的解决方案是查询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

Original answer

使用wmicWin32_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端口上用迭代覆盖它们。请享用!

另一答案

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

以上是关于在Windows批处理中获取串行com端口描述的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中获取 Windows 串行端口的输入缓冲区长度

如何在 Windows 中获取 COM 端口的友好名称?

Windows 7 上的奇怪行为 QT QSerialPort 不会更改串行 com 端口的设置

使用 CSerial (C++) 打开虚拟 COM 端口

使用Windows API配置串行端口:CreateFile失败,错误2(ERROR_FILE_NOT_FOUND)

如何通过usb端口通信从arduino将串行数据写入phpmyadmin