call - Execute Other Batch Files

Maintained on

As the range of applications for batch files expands, it is common to have multiple batch files that perform similar processes within a program.

In such cases, it is inefficient to write the same process in multiple batch files, and maintenance costs increase.

Also, it is common to call multiple batch files created separately from a batch file for scheduled execution.

This page explains how to execute other batch files from a batch file, from basic usage to setting options, in an easy-to-understand manner.

Basic usage of the call command

To call other batch files from a batch file, use the call command.

The basic usage of the call command is as follows.

call <batch file name> [...parameters]

There are no options, only the batch file name and the parameters to pass to the batch file are specified.

Using the call command, the specified batch file is executed and returns to the calling batch file after completion.

Examples of the call command

Executing other batch files

As an example, prepare the caller.cmd to be executed directly and the callee.cmd to be called.

caller.cmd looks like this:

@echo off

echo Started caller.cmd.

call callee.cmd

echo Finished caller.cmd.

Similarly, callee.cmd looks like this:

@echo off

echo Started callee.cmd.

echo Finished callee.cmd.

When caller.cmd is executed with the above settings, the following will be displayed:

×
Command Prompt icon
Command Prompt
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>caller.cmd
Started caller.cmd.
Started callee.cmd.
Finished callee.cmd.
Finished caller.cmd.
C:\users\user>

When caller.cmd is executed, callee.cmd is executed by the call command, and after callee.cmd is completed, it returns to caller.cmd.

In this way, when using the call command, the called batch file waits until the called batch file is completed.

Executing a batch file by passing arguments

Next, we will explain how to execute a batch file by passing arguments to it.

Prepare caller.cmd to be executed directly and callee.cmd to be called.

caller.cmd looks like this:

@echo off

echo Started caller.cmd.

call callee.cmd 1

call callee.cmd 2

echo Finished caller.cmd.

callee.cmd is written as follows:

@echo off

echo Started callee.cmd.

echo This is the first execution.

echo Finished callee.cmd.

When caller.cmd is executed with the above settings, the following will be displayed:

×
Command Prompt icon
Command Prompt
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>caller.cmd
Started caller.cmd.
Started callee.cmd.
This is the first execution.
Finished callee.cmd.
Started callee.cmd.
This is the second execution.
Finished callee.cmd.
Finished caller.cmd.
C:\users\user>

If you want to achieve parallel processing

There may be cases where you want to execute the next process without waiting for the completion of the called batch file when calling a batch file.

If you use the call command, the next process will be executed after waiting for the completion of the called batch file.

If you want to execute the next process without waiting for completion, use the start command.

For more information on the start command, see the following page.

Confirmation Test

Quiz

There are two batch files, caller.cmd and callee.cmd. If you execute caller.cmd in this state, which one will be the third to be displayed by the echo command?

caller.cmd
@echo off

echo Started caller.cmd.

call callee.cmd

echo Finished caller.cmd.
callee.cmd
@echo off

echo Started callee.cmd.

echo Finished callee.cmd.
#Command Prompt #Batch File #Argument #Command Line #Command