Windows CMD-查找COM端口的当前波特率



我试图在命令提示符下解析MODE命令的输出,并将其分配给一个变量。mode的输出如下图所示,

PS C:Userstest> mode %COMPORT%
Status for device COM5:
-----------------------
Baud:            9600
Parity:          None
Data Bits:       8
Stop Bits:       1
Timeout:         OFF
XON/XOFF:        OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit:     OFF
RTS circuit:     OFF

我正在尝试使用FIND获得第一行,如下所示,

mode COM5 | find /I "Baud"

上面写着FIND: Parameter format not correct

顺便说一句,这就是整个代码的样子,

@echo off
for /f "tokens=3" %%a in (
'REG QUERY HKLMHARDWAREDEVICEMAPSERIALCOMM'
) do set "COMPORT=%%a" 
echo %COMPORT%
for /f "tokens=2" %%a in (
'MODE %COMPORT% | FIND /I "Baud"'
) do set "SPEED=%%a" 
echo %SPEED%

但这不起作用,我做错了什么?

Event尽管我仍然不知道为什么同一命令在普通控制台中有效,但在powershell控制台中无效,但脚本的问题完全不同。在for循环中,您需要转义|字符。真正的问题不是FIND命令的Parameter format not correct错误(误报(,而是|所需的逃逸

更正后的脚本如下所示。

@echo off
for /f "tokens=3" %%a in (
'REG QUERY HKLMHARDWAREDEVICEMAPSERIALCOMM'
) do set "COMPORT=%%a" 
echo %COMPORT%
for /f "tokens=2" %%a in (
'MODE %COMPORT% ^| FIND /I "Baud"'
) do set "SPEED=%%a" 
echo %SPEED%

相关内容

  • 没有找到相关文章

最新更新