Как предоставить консольный ввод (да/нет) как часть пакетного файла в 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/...