如何从批处理文件将一位数发送到 COM 端口?

问题描述

我需要将批处理文件中的一些单字符命令发送到挂在 COM 端口上的 Bus Pirate,但我无法发送单个数字。
如果我发送一个两位数的号码,它发送的很好,似乎只有一位数的号码有问题。

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

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

有什么技巧可以让它发挥作用吗?

解决方法

出现问题是因为您没有使用完整的重定向句柄,因此您发送到 COM 端口的数字字符串被误认为是 1。即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
)