Ваш commands.txt
файл - просто безлад.
Я припускаю, що ви хочете відправити set_zero
команду, а не echo set_zero
команду, тому поставте set_zero
у файл, не echo set_zero
.
Хоча якщо вам потрібно зробити паузу між командами, просте перенаправлення вводу не допоможе, оскільки ви не можете використовувати timeout
команду тоді. Ви хочете виконати timeout
команду локально, поки ви надсилаєте її до послідовного порту. Ваш код насправді правильний, якби ви використовували його як сценарій, який генерує вхід для plink
. Але для цього вам потрібно |
не користуватися <
.
Це може зробити те, що ви хочете:
(
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
Хоча ви можете рухатися pause
лише після plink
:
(
...
echo set_a 0
timeout /t 3 /nobreak >nul 2>&1
) | plink -load test
pause >nul 2>&1
Як альтернатива, як вже запропонував @Appleodity, перейменуйте commands.txt
її commands.bat
та використовуйте так:
commands.bat | plink -load test
Знову, можливо, так (після переходу pause
з commands.bat
):
commands.bat | plink -load test
pause >nul 2>&1