Windows пакетный файл - автоматический c ответ при выполнении пакетного файла через приглашение CMD - PullRequest
0 голосов
/ 14 января 2020

Мне нужно подавить автоматический ответ для выполнения командного файла в CMD.

Я пробовал приведенный ниже скрипт, но он постоянно запрашивает один и тот же

Echo y|D:\test\abc.bat

Вывод :

enter image description here

Может ли кто-нибудь помочь мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Это то же самое ответ здесь

Вы можете попробовать использовать SendKey из / гибридный скрипт, вызовите D:\test\abc.bat и отправьте y на ввод.

Сохранить как .cmd и настроить время ожидания (в миллисекундах) для ответа y в 8th строка : WScript.Sleep 1000 :


<!-- :
@echo off && rem mode 50,03 && title <nul && title .\%~nx0 
cmd /k %__APPDIR__%wScript.exe "%~dpnx0?.wsf"
goto :eof
--> <job> <script language = "vbscript">
Set WshShell = wscript.CreateObject("wscript.Shell") : WScript.Sleep 100 
wshshell.sendkeys "D:\test\abc.bat" : WScript.Sleep 100  
wshshell.sendkeys "{ENTER}" : WScript.Sleep 1000 : wshshell.sendkeys "y"
wshshell.sendkeys "{ENTER}" : 'for exit cmd /k add this line wshshell.sendkeys "exit" : wshshell.sendkeys "{ENTER}"
</script></job>

Вы можете применить дополнительные команды, добавив:

WScript.Sleep [time needs]
wshshell.sendkeys "strings[command] you need"
wshshell.sendkeys "{ENTER}"


код:


Set WshShell = wscript.CreateObject("wscript.Shell")
WScript.Sleep 100 
wshshell.sendkeys "D:\test\abc.bat"
WScript.Sleep 100  
wshshell.sendkeys "{ENTER}"
WScript.Sleep 1000
wshshell.sendkeys "yes"
wshshell.sendkeys "{ENTER}" 
'for exit cmd /k add this 2 line:
wshshell.sendkeys "exit"
wshshell.sendkeys "{ENTER}"

0 голосов
/ 14 января 2020

Используйте это, чтобы сделать это:

<nul set /p="y" | D:\Test\abc.bat 

Эхо делал это с дополнительным переводом строки. Это вставит y без перевода строки.

...