Windows CMD - 查找 COM 端口的当前波特率
Windows CMD - Find current baud rate of COM port
我正在尝试在命令提示符下解析 MODE
命令的输出并将其分配给一个变量。
mode
的输出如下所示,
PS C:\Users\test> 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 HKLM\HARDWARE\DEVICEMAP\SERIALCOMM'
) do set "COMPORT=%%a"
echo %COMPORT%
for /f "tokens=2" %%a in (
'MODE %COMPORT% | FIND /I "Baud"'
) do set "SPEED=%%a"
echo %SPEED%
但这不起作用,我做错了什么?
尽管我仍然不知道为什么相同的命令在普通控制台中有效但在 powershell 控制台中无效,但脚本的问题完全出在不同的地方。在 for
循环中,您需要转义 |
字符。真正的问题不是 FIND
命令的 Parameter format not correct
错误(误报),而是 |
所需的转义
更正后的脚本如下所示。
@echo off
for /f "tokens=3" %%a in (
'REG QUERY HKLM\HARDWARE\DEVICEMAP\SERIALCOMM'
) do set "COMPORT=%%a"
echo %COMPORT%
for /f "tokens=2" %%a in (
'MODE %COMPORT% ^| FIND /I "Baud"'
) do set "SPEED=%%a"
echo %SPEED%
我正在尝试在命令提示符下解析 MODE
命令的输出并将其分配给一个变量。
mode
的输出如下所示,
PS C:\Users\test> 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 HKLM\HARDWARE\DEVICEMAP\SERIALCOMM'
) do set "COMPORT=%%a"
echo %COMPORT%
for /f "tokens=2" %%a in (
'MODE %COMPORT% | FIND /I "Baud"'
) do set "SPEED=%%a"
echo %SPEED%
但这不起作用,我做错了什么?
尽管我仍然不知道为什么相同的命令在普通控制台中有效但在 powershell 控制台中无效,但脚本的问题完全出在不同的地方。在 for
循环中,您需要转义 |
字符。真正的问题不是 FIND
命令的 Parameter format not correct
错误(误报),而是 |
更正后的脚本如下所示。
@echo off
for /f "tokens=3" %%a in (
'REG QUERY HKLM\HARDWARE\DEVICEMAP\SERIALCOMM'
) do set "COMPORT=%%a"
echo %COMPORT%
for /f "tokens=2" %%a in (
'MODE %COMPORT% ^| FIND /I "Baud"'
) do set "SPEED=%%a"
echo %SPEED%