4

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?

Jay
  • 4,627
  • 1
  • 21
  • 30
Blood hound
  • 87
  • 1
  • 1
  • 8

3 Answers3

5

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
lashgar
  • 5,184
  • 3
  • 37
  • 45
4

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"
Jay
  • 4,627
  • 1
  • 21
  • 30
1

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

Abhi
  • 177
  • 1
  • 3
  • 16