This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Windows - Пишем в cmd, bat

Не работает? Начинай читать инструкцию.

Как в bat файле, автоматически ответить "ДА", на запрос о подтверждении

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

Предлагаю ознакомиться с предложениями моих партнёров

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

Давайте на примере посмотрим как выглядит такой запрос на подтверждение потенциально опасного действия. Создадим на диске С, например, папку test. Создадим в ней или скопируем в нее два любых файла. Далее, откроем командную строку и выполним следующую команду:

del C:\test

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

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

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

Чтобы избежать этого используем перенаправление, которое осуществляется при помощи символа -"|" (без кавычек)

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

echo Y|del C:\test

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

Предлагаю ознакомиться с предложениями моих партнёров