A windows batch file (called.bat
or called.cmd
) can be called from another batch file (caller.bat
or caller.cmd
) or interactive cmd.exe prompt in several ways:
called.bat
call called.bat
cmd /c called.bat
start called.bat
I'm quite in trouble to differentiate their intended usage based on their help text: when to use which one? e.g. why I might use 'call' command instead of direct call. What's different?
I'm interested on some summary report that analyze all 4 possibilities (and others if any missing) from various point of views: recommended use cases for which they are designed to fit, process spawning, execution context, environment, return code processing.
Note: I'm using Windows XP SP3.
The batch file will be executed by the current cmd.exe instance (or a new cmd.exe instance if, for instance, double-clicked in Explorer).
Same as #1, only has an effect when used inside a batch/cmd file. In a batch file, without 'call', the parent batch file ends and control passes to the called batch file; with 'call' runs the child batch file, and the parent batch file continues with statements following call.
Runs the batch file in a new cmd.exe instance.
Start will run the batch file in a new cmd.exe instance in a new window, and the caller will not wait for completion.