Автоматически ввод скрипта да в 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
Я думаю, что вы можете получить большую часть пути туда.
Как автоматически ответить на запрос о подтверждении –
Для исправления таких неприятностей можно перенаправить нужный ответ в команду. Т.е. выполнить обратное действие для перенаправления вывода результатов работы команды в файл.
Посмотрим на примере как выглядит запрос на подтверждение потенциально опасного действия. Создадим на диске С, например, папку Folder. Создадим в ней или скопируем в нее два любых файла. Далее, откроем командную строку и выполним следующую команду:
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. Это очень помогает сисадмину выполнять команды в непрерывной форме, что делает их жизнь легкой и комфортной.



