Name

call

Synopsis

Invoke a batch file from within another batch file, returning control to the original when the called file completes.

Syntax

call [filename] [arguments]

Description

The call command lets you invoke a batch file from within another batch file and wait for it to finish before continuing. Once the called file has completed its execution, the control returns to the original batch file.

Warning

If you run another batch file from within a batch file without using call, the control will never be returned to the parent batch file when the child process is finished. The whole thing just quits. Of course, this fact can be put to use; for example, it helps to avoid recursion when a batch file calls itself.

The options for call are as follows:

filename

Specifies the filename of the batch file to call.

arguments

Specifies any command-line arguments to be passed to the target batch file.

Examples

The following parent.bat calls child.bat, and then returns the control back to itself:

parent.bat:

@echo off
cls
call child.bat First
set first=%inputvar%
call child.bat Second
set second=%inputvar%
echo You typed %first% and then you typed %second%

child.bat:

set /p inputvar=Please type the %1 option:
echo Thank you.

In this example, parent.bat launches child.bat twice, which illustrates how you can write modular code in batch files. Child.bat asks for input and then places what the user types into the environment variable inputvar. When control is returned to parent.bat, the variable ...

Get Windows XP in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.