在 windows 批中获取串行 com 端口描述
get serial com port description in windows batch
我想检索设备管理器显示的串行 com 端口信息。例如,"Intel(R) Active Management Technology - SOL (COM3)"。
我知道使用命令 "mode" 来检索串口列表,但是没有像 "Intel(R) Active Management Technology - SOL" 这样的描述。如何在 windows 批处理文件中获取此信息?
更新答案
... 由原始提问者在下面的评论中提供。显然 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 端口上重复覆盖它们。享受吧!
请使用mode
命令获取可用COM端口的详细信息..
我想检索设备管理器显示的串行 com 端口信息。例如,"Intel(R) Active Management Technology - SOL (COM3)"。 我知道使用命令 "mode" 来检索串口列表,但是没有像 "Intel(R) Active Management Technology - SOL" 这样的描述。如何在 windows 批处理文件中获取此信息?
更新答案
... 由原始提问者在下面的评论中提供。显然 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 端口上重复覆盖它们。享受吧!
请使用mode
命令获取可用COM端口的详细信息..