Пакетный файл Windows для запуска и связи с работающей программой


1

(Как) может программа с интерактивным режимом командной строки ( ракушка ) программно "взаимодействовать" с CMD.exe через командный файл (.bat)? Пример:

>program.exe
>>aCommand
>>someResponse
>>anotherCommand
>>someotherResponse
>>quit
>

Пакетный файл должен запуститься program.exe, Отправить aCommandзатем [опционально] дождаться someResponse и так далее.

Там в Как взаимодействовать с программой командной строки, используя командный файл? но не нуждается в автоматическом взаимодействии и поэтому принимает CALL как ответ.

Может быть, можно запустить процесс отдельно, а затем передать команды и ответы для связи с ним?


В другом месте:

Ответы:


2

Существуют различные механизмы для .bat файлы, хотя и очень ограничены.

Команда установки Microsoft DOS

Синтаксис: SET /P variable=[promptString]

Пример :

ECHO 1. Print Hello
ECHO 2. Print Bye
ECHO 3. Print Test
set choice=
set /p choice=Type the number to print text.

Команда выбора Microsoft DOS

Синтаксис: CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

Пример :

CHOICE /C YNC /M "Press Y for Yes, N for No or C for Cancel."

Пауза

Синтаксис: pause

Выдает сообщение «Нажмите любую клавишу для продолжения ...» и ждет любого ключа.


Хотя это не отвечает на мой вопрос, это очень приятно знать! :-) choice работает аналогично set /p но устанавливает errorlevel, Вот еще одна ссылка CMD: ss64.com/nt/choice.html
handle

Что бы ответить на ваш вопрос?
harrymc

:-) Если бы я знал, не было бы вопроса.
handle

Это команды, которые я знаю. Если вы ищете более изощренных, вам нужно написать программу, которая возвращает число в сценарий через уровень ошибки.
harrymc

Я ценю ваши усилия, но мы, кажется, не понимаем друг друга. Я добавил к своему вопросу, надеясь прояснить ситуацию. Ваш ответ, по-видимому, не охватывает какое-либо общение с отдельной программой.
handle
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.