Как предоставить консольный ввод (да/нет) как часть пакетного файла в Windows.

Я пишу простой командный файл (remove.bat), чтобы удалить каталог и все его подкаталоги. Файл содержит следующую команду:

rmdir /S modules

где modules - это имя непустого каталога.

Получаю следующее сообщение:

C:\...\bin>rmdir /S modules
modules, Are you sure (Y/N)?

Как я могу передать через командный файл консольный ввод "Y" в вопрос Y/N выше? Есть ли команда, которая может это сделать?

Ответ 1

Как указывали другие, вы должны использовать опцию /Q. Но есть и другой способ "старой школы", который использовался в тот день, когда команды не имели возможности подавлять подтверждающие сообщения. Просто ECHO необходимый ответ и передайте значение в команду.

echo y|rmdir /s modules

Вместо этого я рекомендую использовать параметр /Q, но техника труб может быть важной, если вы когда-либо запускаете команду, которая не предоставляет возможность подавлять подтверждающие сообщения.

Ответ 2

Используйте rmdir /S /Q modules

/Q подавляет запрос подтверждения.

Ответ 3

Сделайте rmdir /S для удаления непустого каталога и выполните rmdir /Q, чтобы не запрашивать. Объедините с rmdir /S /Q для тихого удаления непустых каталогов.

Ответ 4

Вы можете сделать

rmdir /Q

Q для тихого

Ответ 5

Я просто хочу добавить, что, хотя это не применимо к Rmdir, в некоторых случаях также может быть решение с силовым переключателем. Поэтому в общем случае вы должны посмотреть на свои командные переключатели для /f,/q или их некоторых вариантов (например, Netdom RenameComputer использует /Force, not/f).

Эхо-труба - это аккуратный трюк и очень полезен, потому что вы не всегда найдете подходящий переключатель. Например, я думаю, что это единственный способ обойти эту подсказку Y/N...

Echo y|NETDOM COMPUTERNAME WorkComp /Add:Work-Comp

fooobar.com/info/13829/...