Рубрики
cmd \ vbs \ scripts

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

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

Далее, откроем командную строку и выполним следующую команду:
del C:\Folder

Эта команда должна удалить все файлы из указанной папки. 
Но предварительно будет выдан запрос для подтверждения следующего содержания:
C:\Folder\*, Продолжить [Y(да)/N(нет)]?

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

Перенаправление осуществляется при помощи символа
|

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

Выполните в командной строке следующую команду:
echo Y|del C:\Folder

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