如何从批处理文件中将单个数字发送到 COM 端口?

How to send a single digit number to a COM port from a batch file?

我需要从批处理文件向挂在 COM 端口上的 Bus Pirate 发送一些单字符命令,但我在发送单个数字时遇到问题。
如果我发送一个两位数的号码,它发送正常,似乎只有一位数有问题。

在下面的代码中,字母发送正常,但数字似乎根本没有发送。

Set "CNum=COM5" 
echo m>\.\%CNum%
echo 4>\.\%CNum%
echo 4>\.\%CNum%
echo W>\.\%CNum%
echo P>\.\%CNum%

有什么技巧可以让它工作吗?

出现此问题是因为您没有使用完整的重定向句柄,因此您发送到 COM 端口的数字字符串被误认为是一个。即 1>\.\COM5.

您可以使用:

Set "CNum=COM5" 
>\.\%CNum% echo m
>\.\%CNum% echo 4
>\.\%CNum% echo 4
>\.\%CNum% echo W
>\.\%CNum% echo P

或:

Set "CNum=COM5" 
(echo m) >\.\%CNum%
(echo 4) >\.\%CNum%
(echo 4) >\.\%CNum%
(echo W) >\.\%CNum%
(echo P) >\.\%CNum%

您甚至可能想尝试:

Set "CNum=COM5" 
(   echo m
    echo 4
    echo 4
    echo W
    echo P
) >\.\%CNum%

或:

Set "CNum=COM5" 
>\.\%CNum% (
    echo m
    echo 4
    echo 4
    echo W
    echo P
)