程序返回状态时的cmd动作
问题描述:
我有USB中继,我可以通过cmd文件ON.cmd和OFF.cmd控制它。我想创建TOOGLE.cmd文件。 我可以通过发送hidusb-relay-cmd id=YWM8T STATUS
及其返回State: R1=OFF R2=OFF
来检查继电器状态。如何发送hidusb-relay-cmd id=YWM8T ON ALL
如果State: R1=OFF R2=OFF
并发送hidusb-relay-cmd id=YWM8T OFF ALL
如果State: R1=ON R2=ON
?程序返回状态时的cmd动作
答
试试这个:
@echo off
cd %tmp%
hidusb-relay-cmd id=YWM8T STATUS|findstr "OFF">sh.tmp
set "out="
set /P out=<sh.tmp
del /q /f sh.tmp
if defined out goto :def
hidusb-relay-cmd id=YWM8T OFF ALL
goto :exit
:def
hidusb-relay-cmd id=YWM8T ON ALL
:exit
工作原理:
- 它查找
OFF
在hideusb-relay-cmd
命令的输出重定向到一个临时文件。 - 它重置
out
变量(如果你要在命令行中使用它,这是非常必要的)。 - 它将
out
设置为临时文件的内容。 - 它删除临时文件。
- 它检查
out
是否有任何值。如果有,goto :def
并跳过hidusb-relay-cmd id=YWM8T OFF ALL
命令。如果没有,它不会跳过它。 - 无论它走到哪里,它都会随后退出。
完美的工作!谢谢! –
没问题,@AlexIschenko – Kappa