Как автоматически отвечать на Да или Нет в командах Linux-Unix

Автоматически ввод скрипта да в windows cmd да / нет подсказка – windows

Вы можете создать файл Yes.bat с чем-то вроде следующего:

@echo off
for /L %%X in (1,1,77) do echo Yes

(Заменить 77 на достаточно большое число)

Тогда просто беги

Yes.bat | YourCommand.bat

Кажется, нормально, что команда Yes.bat выводит больше значений Yes, чем требуется для YourCommand.bat. В Windows 7 они, похоже, молча отбрасываются…

Вышеуказанное работает только с пакетными файлами и, как вы указали, не отвечает на ваш вопрос.

Ваш макрос doskey не может быть использован в командном файле и, кажется, не может быть в конце канала, поэтому

Yes.bat | yourDOSKeyMacro

просто терпит неудачу.

На ваш вопрос я не могу придумать общий ответ, но приглашение приходит из части REG REG DELETE макроса. Вы можете избавиться от этой подсказки с помощью параметра /f (Force):

REG DELETE “HKLM SYSTEM CurrentControlSet Control Terminal Server” / v “fDenyTSConnections” / f

Я думаю, что вы можете получить большую часть пути туда.

Как автоматически ответить на запрос о подтверждении –

Некоторые команды при выполнении требуют подтверждения потенциально опасного действия. Например, такие команды как format или del предварительно запросят подтверждения на дальнейшее выполнение. Если одна из этих команд выполняется в пакетном файле, то запрос на подтверждение остановит выполнение пакетного файла и он будет ожидать от пользователя выбора одного из предложенных вариантов. Причем, если результат выполнение пакетного файла перенаправлен в лог-файл, то пользователь не увидит запроса на подтверждение и batch файл будет выглядеть зависшим.
Для исправления таких неприятностей можно перенаправить нужный ответ в команду. Т.е. выполнить обратное действие для перенаправления вывода результатов работы команды в файл.
Посмотрим на примере как выглядит запрос на подтверждение потенциально опасного действия. Создадим на диске С, например, папку Folder. Создадим в ней или скопируем в нее два любых файла. Далее, откроем командную строку и выполним следующую команду:

:/>  Как найти пропавший диск D? - Справочник по настройке компьютера

del C:Folder

Эта команда должна удалить все файлы из указанной папки. Но предварительно будет выдан запрос для подтверждения следующего содержания:

C:Folder*, Продолжить [Y(да)/N(нет)]?

Выполнение команды будет остановлено до тех пор, пока не будет нажата либо клавиша Y, либо клавиша N. При выполнении пакетного файла в автоматическом режиме, его исполнение остановится.
Чтобы избежать этого используем перенаправление. Перенаправление осуществляется при помощи символа

|

Вертикальная черта говорит о том, что вместо вывода символа на экран его надо «отдать» следующей за символом команде. Проверим работу перенаправления. Выполните в командной строке следующую команду:

echo Y|del C:Folder

На экране будет показан запрос на подтверждение удаления всех файлов в папке Folder, но уже с положительным ответом (Y). Все файлы из папки Folder будут удалены.
Будьте осторожны с этой командой.

Метод 1:  повторять да или нет

Вы могли бы использовать этот метод, вторя да или нет до фактической команды или сценария и размещения трубы «|» между этими двумя командами. Для разработки этой методики покажем пример.

Допустим, у вас есть пять текстовых файлов в каталоге «/tmp/AndreyEx», как показано ниже.

Теперь вы хотите удалить все или только один файл «1.txt» в этом каталоге. Ответ прост, команда rm. Однако эта команда попросить да или нет, прежде чем приступить к удалению файла. Как показано ниже:

В описанном выше способе мы обеспечили ввод «у» для команды rm. Чтобы этого можно было избежать, укажем перед командой rm, как показано ниже:

Способ 3: команда yes с другим входом.

Допустим, вы не хотите ответы, вместо Да. В этот раз, когда вы хотите ответить no для всех подтверждений, заданные командой. Далее следует ниже пример. Здесь мы не ответили no на все ответы. Следовательно, никакие файлы не были удалены системой.

:/>  Скачать вирус чтобы убить комп бесплатно

Даже вы можете использовать следующую команду вместо выше.

Вывод:

Таким образом, мы можем использовать команду yes для автоматического ответа Да или Нет для команд Linux-Unix. Это очень помогает сисадмину выполнять команды в непрерывной форме, что делает их жизнь легкой и комфортной.