start - Execute Other Batch Files Asynchronously
It is common to use batch files to call multiple batch files created separately from a batch file for scheduled execution. It is also common to execute specific exe files from batch files.
This page provides an easy-to-understand explanation of the start command, which is used to execute other programs or batch files from a batch file, from basic usage to setting options.
Basic usage of the start command
The basic usage of the start command is as follows:
start [title] [path to program to be executed] [parameters to be passed to the program]
To be more specific, the command can be expressed as follows, but in most cases, only the title of the program to be executed, the path to the program, and the parameters to be passed to the program are specified as shown above.
start [title] [/d <path to program to be executed>] [/i] [{/min | /max}] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | /belownormal}] [/node <NUMA node>] [/affinity <HEX>] [/wait] [/b] [/machine <x86|amd64|arm|arm64>] [additional command/program] [parameters to be passed to the program]
The start command executes the specified program at the specified path, but it does not wait for the program to complete before moving on to the next process.
Examples of the start command
Executing other batch files
As an example, prepare the caller.cmd file to be executed directly and the callee.cmd file to be called.
The caller.cmd file is as follows:
@echo off
echo Started caller.cmd.
start callee.cmd
echo Finished caller.cmd.
Similarly, callee.cmd looks like this:
@echo off
echo Started callee.cmd.
rem Wait for 5 seconds
timeout /t 5 /nobreak >nul
echo Finished callee.cmd.
After configuring as above, executing caller.cmd will display another command prompt window and execute each batch file as follows:
When these are executed in order, the result is as follows:
Started caller.cmd.
Started callee.cmd.
Finished caller.cmd.
Finished callee.cmd.
callee.cmd finishes after caller.cmd finishes.
caller.cmd finishes instantly, but callee.cmd waits for 5 seconds using the timeout command.
Using the start command allows the next process to be executed without waiting for the called batch file to complete.
Executing a batch file with arguments
Next, we will explain how to execute a batch file with arguments.
Prepare the caller.cmd file to be executed directly and the callee.cmd file to be called.
@echo off
echo Started caller.cmd.
start callee.cmd 1
start callee.cmd 2
echo Finished caller.cmd.
@echo off
echo Started callee.cmd.
echo This is the %1st execution.
rem Wait for 5 seconds
timeout /t 5 /nobreak >nul
echo Finished callee.cmd.
After configuring as above, executing caller.cmd will display two new windows and execute each batch file.
The result will be as follows:
Waiting for the called program to finish
If you want to wait for the called batch file to finish before proceeding to the next process, use the /wait option of the start command.
By using the /wait option, the next process will not be executed until the called program has finished.
Alternatively, you can use the call command to wait for the called program to finish before proceeding to the next process.
For more information on the call command, see the following page: