Как вы вводите что-то в командной строке DOS программно? - PullRequest
16 голосов
/ 16 марта 2010

У меня есть программа, которая должна взаимодействовать с программой DOS, прежде чем моя программа сможет продолжить свою работу. Я пытаюсь избежать взаимодействия моего пользователя с этой программой. Итак, я создал файл .bat, который делает все, что мне нужно, за исключением последнего шага, который все еще требует взаимодействия с пользователем, которого я пытаюсь избежать.

В частности, команда, которую я набираю, заканчивается в командной строке dos, где мне нужно автоматически ввести y, а затем ввести (сказать «да» подсказке) и затем я хочу выйти.

Есть ли способ, которым я могу сделать это автоматически без того, чтобы мой пользователь вводил y и вводил? В идеале, я бы хотел, чтобы окно консоли даже не всплывало, пока это происходит.

Ответы [ 3 ]

20 голосов
/ 16 марта 2010

Вы можете направить символ 'y' в программу следующим образом:

echo y | executable.exe

Можно ввести несколько строк следующим образом:

(echo y
echo n) | executable.exe

... который пройдет сначала 'y', а затем 'n'.

См. Совет от Microsoft здесь .

8 голосов
/ 18 марта 2014

В сообщении от Microsoft также четко сказано:

Не вводите пробел между "y" и символом трубы (|)

и действительно, я заметил, что в моем случае

эхо у | executable.exe

не работает в то время как

эхо у | executetable.exe

отлично работает

0 голосов
/ 27 ноября 2018

Я использовал следующее, так как «echo y | executetable.exe» не работал для меня

// Write a "Y" to the process's input
proc.StandardInput.WriteLine("Y");
// Now that we've sent the confirmation "Y" wait for the process to exit
proc.WaitForExit();

как указано здесь: https://www.experts -exchange.com / questions / 27024185 / C-ProcessStart-How-to-auto-press-the-Y-key.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...