13

I have a batch file which calls another batch file that exists in PATH directory (basically calling an executable with additional switches.)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

In foo.bat:

foo.exe -t -s %1

bar.bat executes the first command but exits immidately (i.e. working on file1.txt only).

How can I make this batch file to invoke the other batch file more than once?

masegaloeh
  • 17,978
  • 9
  • 56
  • 104
Dani
  • 1,216
  • 1
  • 13
  • 20

5 Answers5

14

Use the CALL keyword:

call foo.bat file1.txt
call foo.bat file2.txt
splattne
  • 28,348
  • 19
  • 97
  • 147
  • 1
    In addition to @splattne's answer, use exit /b in the CALLed batch file if you need to return early. – Brad Bruce May 26 '09 at 11:33
  • 1
    You can also use `goto :eof` to return early. `exit /b` is usually only needed if you need the return code. – Joey Jan 11 '10 at 09:21
  • I don't why but I am struggling to get this to work, I have tried both `exit /b` and `goto: eof`. Is it ok to be appending the output of the CALLed bat? `call foo.bat > myfile` – SSH This Oct 26 '12 at 21:39
4

In addition to @splattne's answer, use exit /b in the CALLed batch file if you need to return early.

Duncan Smart
  • 330
  • 2
  • 8
2

Another option (for compatibility with DOS prior to version 3.3 :-) ) is to call the command process with the child (/c) option and the name of the other batch file to process. That will also do a call instead of a chain, and will even work on truly ancient machines (just in case someone runs across this and cares). :-)

Brian Knoblauch
  • 2,188
  • 2
  • 32
  • 45
0

@echo off

echo WbLegalReport.cmd

i:

cd I:\CFS\Batch\jarDir

echo %CD%

WbLegalReport.cmd

echo %CD%

echo WatchResrAddDeleted.cmd

echo %CD%

WatchRestrAddDeleted.cmd

echo %CD%

What I am trying to do here is call these two batch files in a sequence.

Unable to do so.

help please.

Acutally it is failing at the child script, As the control does not return back to the main script

0

Sanket, don't call the batch file directly. Use the "CALL" command. See splattne's example.

pepoluan
  • 4,918
  • 3
  • 43
  • 71