命令格式
格式一:call [ [Drive:] [Path] FileName [Pararneters] ]
格式二:call [:label [arguments] ]
命令功能
使用call命令,可以调用其它程序(包括批处理文件、其它执行命令)或标签
【格式一】
call [ [Drive:] [Path] FileName [Pararneters] ]
【Drive 参数】
指定 FileName 所在的驱动器名称,例如:C、D
【Path 参数】
指定 FileName 所在的路径
【 FileName 参数】
指定的要调用的文件,该文件必须是批处理文件或执行文件
【Pararneters参数】
指定调用 FileName 时传递的参数 ,多个参数使用空白分隔
示例
::demo.bat
@echo off
echo %1
运行
C:\>call demo.bat one
one
C:\>
【格式二】
call [:label [arguments] ]
【:label 参数】
指定要调用的标签
示例
::demo.bat
@echo off
echo before
call :target
echo after
:target
echo target
运行
C:\>demo
before
after
target
C:\>
【arguments 参数】
指定调用 :label 标签时传递的参数,多个参数使用空白分隔 关于标签的参数https://blog.csdn.net/mt15306338066/article/details/127212997
【使用call调用批处理文件和不用call调用批处理文件的区别】
示例
call.bat的内容如下:
::call.bat
echo %var%
use-call.bat的内容如下:
::use-call.bat
@echo off
set var=this is a book.
call call.bat
echo next
use-not-call.bat的内容如下:
::use-not-call.bat
@echo off
set var=this is a book.
call.bat
echo next
运行
C:\>use-call.bat
this is a book.
next
C:\>use-not-call.bat
this is a book.
C:\>
解析
1、在父批处理文件(如上例:use-not-call.bat)中,不用call命令调用子批处理文件(如上例:call.bat),则子批处理文件执行完成后自动退出整个程序。即:父批处理文件中,子批处理文件调用语句(如上例:call.bat)的后续命令不会被执行
2、在父批处理文件(如上例:use-call.bat)中,使用call命令调用子批处理文件(如上例:call.bat),则子批处理文件执行完成后会继续执行call命令(如上例:call call.bat)的后续语句。
3、使用call调用子批处理文件(或不用call命令调用子批处理文件)时的注意点:
- 只在父批处理文件(如上例:use-not-call.bat 和 use-call.bat)中使用命令“@echo off”,“@echo off”命令对子批处理文件(如上例:call.bat)也有效
- 在父批处理文件中设置的环境变量(如上例:var),也能在子批处理文件中使用
【使用 call 命令调用批处理文件和使用 start 命令调用批处理文件的区别】
示例
call.bat的内容如下:
::call.bat
echo %var%
use-call.bat的内容如下:
::use-call.bat
@echo off
set var=this is a book.
call call.bat
echo next
start.bat的内容如下:
::start.bat
@echo off
set var=this is a book.
start call.bat
echo next
运行
解析
在父批处理文件(如上例:start.bat)中,使用 start命令调用子批处理文件(如上例:call.bat),则start命令会创建一个新进程执行子批处理文件。这时,在父批处理文件(如上例:use-call.bat)中,子批处理文件调用语句(如下例:start call.bat)的后续命令会被同时执行
写作不易,如果您觉得对您有用,请 “在下面一圈三连”。