2017-06-18 3 views
0

J'ai relais USB et je peux le contrôler par le fichier cmd ON.cmd et OFF.cmd. Je veux créer le fichier TOOGLE.cmd. Je peux vérifier l'état du relais en envoyant hidusb-relay-cmd id=YWM8T STATUS et son retour State: R1=OFF R2=OFF. Comment envoyer hidusb-relay-cmd id=YWM8T ON ALL si State: R1=OFF R2=OFF et envoyer hidusb-relay-cmd id=YWM8T OFF ALL si State: R1=ON R2=ON?cmd action lorsque l'état de retour du programme

Répondre

1

Essayez ceci:

@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 

Comment ça marche:

  1. Il cherche OFF dans la sortie de la commande hideusb-relay-cmd et redirige vers un fichier temporaire.
  2. Il réinitialise la variable out (si vous l'utilisez sur la ligne de commande, c'est tout à fait nécessaire).
  3. Il définit out sur le contenu du fichier temporaire.
  4. Il supprime le fichier temporaire. Il vérifie si out a une valeur quelconque. Si c'est le cas, goto :def et ignorez la commande hidusb-relay-cmd id=YWM8T OFF ALL. Si ce n'est pas le cas, il ne l'ignore pas.
  5. Partout où il est allé, il sort après.
+0

Cela fonctionne parfaitement! Merci! –

+0

Pas de problème, @AlexIschenko – Kappa