how to userinput without typing to a batch file

2020-02-12 13:32发布

问题:

I am trying to run a batch file which requires user input "y/n" to do further action. I want to call this batch file for automation, as during automation argument yes or no need to be passed without user intervention, any idea how to achieve it ?

cmd /c setup.bat

Now if setup.bat is run " yes or no " need to be selected to get the desired result as now this setup.bat is called during automation. Is there anyway to pass "yes" parameter as an input to setup.bat?

回答1:

You can use stream operators like <. Write every expected answer one per line in a file (e.g. foi). Pass this file to the setup.bat using < operator:

cmd /c setup.bat < foi


回答2:

Use below command line to automate "yes" answer by simulating y key press (will include the ENTER key).

cmd /c echo y^> "%temp%\answer.tmp" ^& (setup.bat ^< "%temp%\answer.tmp") ^& del "%temp%\answer.tmp"

To automate "no" answer by simulating n key then ENTER` key.

cmd /c echo n^> "%temp%\answer.tmp" ^& (setup.bat ^< "%temp%\answer.tmp") ^& del "%temp%\answer.tmp"

To automate "yes" answer by simulating "yes" key presses then ENTER key:

cmd /c echo yes^> "%temp%\answer.tmp" ^& (setup.bat ^< "%temp%\answer.tmp") ^& del "%temp%\answer.tmp"

To automate "no" answer by simulating "no" key presses then ENTER key:

cmd /c echo no^> "%temp%\answer.tmp" ^& (setup.bat ^< "%temp%\answer.tmp") ^& del "%temp%\answer.tmp"


回答3:

I guess the simplest solution here is using the pipe with cmd ( | : Reads the output from one command and writes it to the input of another command. Also known as a pipe) so for you its..

cmd /c echo Y | setup.bat

where Y will be your prompt input, the pressing of which you wish to automate