程序返回状态时的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 

工作原理:

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

完美的工作!谢谢! –

+0

没问题,@AlexIschenko – Kappa