Ihre commands.txt
Datei ist nur ein Durcheinander.
Ich gehe davon aus, dass Sie den set_zero
Befehl senden möchten, nicht den echo set_zero
Befehl, also legen Sie set_zero
die Datei an, nicht echo set_zero
.
Wenn Sie jedoch zwischen den Befehlen pausieren müssen, hilft eine einfache Eingabeumleitung nicht, da Sie den timeout
Befehl dann nicht verwenden können . Sie möchten den timeout
Befehl lokal ausführen, während Sie ihn an die serielle Schnittstelle senden. Ihr Code ist tatsächlich korrekt, wenn Sie ihn als Skript verwendet haben, das eine Eingabe für die plink
. Aber dafür musst du |
nicht verwenden <
.
Das könnte tun, was Sie wollen:
( echo set_zero timeout /t 3 /nobreak >nul 2>&1 pause >nul 2>&1 echo set_a 65535 pause >nul 2>&1 timeout /t 3 /nobreak >nul 2>&1 echo set_a 0 timeout /t 3 /nobreak >nul 2>&1 pause >nul 2>&1 ) | plink -load test
Vielleicht möchten Sie sich jedoch pause
erst danach bewegen plink
:
( ... echo set_a 0 timeout /t 3 /nobreak >nul 2>&1 ) | plink -load test pause >nul 2>&1
Alternativelly, wie @Appleodity bereits vorgeschlagen, benennen Sie commands.txt
zu commands.bat
und verwenden Sie es mögen:
commands.bat | plink -load test
Auch hier mag vielleicht diese (nach dem Umzug pause
aus commands.bat
):
commands.bat | plink -load test pause >nul 2>&1