Файл 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
Alternativelly как @Appleodity уже предложил переименовать commands.txt
в commands.bat
и использовать его как:
commands.bat | plink -load test
Снова, может быть, вот так (после перемещения pause
из commands.bat
):
commands.bat | plink -load test
pause >nul 2>&1