Call
Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
Call
Calls one batch program from another without stopping the parent batch program. The call command accepts labels as the target of the call. Call has no effect at the command-line when used outside of a script or batch file.
Syntax
call [[Drive**:][Path] FileName [BatchParameters]] [:**Label [Arguments]]
Parameters
- [ Drive:][Path] FileName
Specifies the location and name of the batch program you want to call. The FileName parameter must have a .bat or .cmd extension.
- BatchParameters
Specifies any command-line information required by the batch program, including command-line options, file names, batch parameters (that is, %0 through %9), or variables (for example, %baud%).
- : Label
Specifies the label to which you want a batch program control to jump. By using call with this parameter, you create a new batch file context and pass control to the statement after the specified label. The first time the end of the batch file is encountered (that is, after jumping to the label), control returns to the statement after the call statement. The second time the end of the batch file is encountered, the batch script is exited. For a description of the goto :eof extension that allows you to return from a batch script, see Related Topics.
- Arguments
Specifies any command-line information that you pass to the new instance of the batch program that begins at **:**Label, including command-line options, file names, batch parameters (that is, %1 through %9), or variables (for example, %baud%).
- /?
Displays help at the command prompt.
Remarks
Using batch parameters
Batch parameters can contain any information that you can pass to a batch program, including command-line options, file names, batch parameters (that is, %0 through %9), and variables (for example, %baud%). For more information about batch parameters, see Related Topics.
Using pipes and redirection symbols
Do not use pipes and redirection symbols with call.
Making a recursive call
You can create a batch program that calls itself, however, you must provide an exit condition. Otherwise, the parent and child batch programs can loop endlessly.
Working with command extensions
With command extensions enabled (that is, the default), call accepts a Label as the target of the call. The correct syntax is as follows:
**call :**Label Arguments
For more information about enabling and disabling command extensions, see cmd in Related Topics.
Examples
To run the Checknew.bat program from another batch program, type the following command in the parent batch program:
call checknew
If the parent batch program accepts two batch parameters and you want it to pass those parameters to Checknew.bat, use the following command in the parent batch program:
call checknew %1 %2
Formatting legend
Format | Meaning |
---|---|
Italic |
Information that the user must supply |
Bold |
Elements that the user must type exactly as shown |
Ellipsis (...) |
Parameter that can be repeated several times in a command line |
Between brackets ([]) |
Optional items |
Between braces ({}); choices separated by pipe (|). Example: {even|odd} |
Set of choices from which the user must choose only one |
|
Code or program output |
See Also
Concepts
Using batch parameters
Cmd
Goto
Using batch parameters
Command-line reference A-Z
Command shell overview