问题描述
我需要将批处理文件中的一些单字符命令发送到挂在 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
)