Не удается экранировать символ канала в CMD Windows при отражении? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь передать некоторые команды через echo, чтобы подключиться через последовательный порт к устройству Linux. Большинство коротких команд работают, но когда я объединяюсь с командой linux, для которой требуется символ "|" это ломает. Что имеет смысл, так как cmd или echo считает, что это команды cmd, к которым он пытается передать. Я пытался с помощью "^ |" чтобы избежать символа трубы, но он не работает.

Я пытался:

echo ble_util | head -n 10 | plink -serial COM17 -sercfg 115200
'head' is not recognized as an internal or external command,
operable program or batch file.

Опять же, имеет смысл, так как cmd думает, что я пытаюсь проникнуть в голову ... но затем я пытаюсь:

echo ble_util ^| head -n 10 | plink -serial COM17 -sercfg 115200
'head' is not recognized as an internal or external command,
operable program or batch file.

Та же проблема, с той лишь разницей, что элемент управления не возвращается в cmd, мне нужно нажать Ctrl + C, чтобы получить возможность вернуть контроль.

Тогда я попробовал:

echo ble_util ^| head -n 10 ^| plink -serial COM17 -sercfg 115200
ble_util | head -n 10 | plink -serial COM17 -sercfg 115200

И, очевидно, это работает.

Есть идеи?

Заранее спасибо!

...