程序返回状态时的cmd动作

时间:2017-06-18 11:29:36

标签: batch-file cmd usb relay

我有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=OFFhidusb-relay-cmd id=YWM8T OFF ALL发送State: R1=ON R2=ON

1 个答案:

答案 0 :(得分:1)

试试这个:

@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

工作原理:

  1. 它在OFF命令的输出中查找hideusb-relay-cmd并将其重定向到临时文件。
  2. 重置out变量(如果你要在命令行使用它,那就非常必要了。)
  3. 它将out设置为临时文件的内容。
  4. 删除临时文件。
  5. 检查out是否有任何值。如果有,goto :def并跳过hidusb-relay-cmd id=YWM8T OFF ALL命令。如果没有,则不会跳过它。
  6. 无论走到哪里,它都会退出。