批处理命令——call和start
⼀、call命令总结
【1】call命令简介
学过汇编或C的朋友,肯定都知道call指令表⽰什么意思。其实,在这⾥它的意思也是⼀样的。在批处理脚本中,call命令⽤来从⼀个批处理脚本中调⽤另⼀个批处理脚本。
语法: call [ [Drive:] [Path] FileName [BatchParameters]] [:label [arguments]]
参数: [Drive:][Path] FileName 指定要调⽤的批处理程序的位置和名称。Filename 参数必须是.bat 或 .cmd 扩展名的类型⽂件。
BatchParameters 指定批处理程序所需的命令⾏信息(即参数项)。
调⽤另⼀个批处理程序,并且不终⽌⽗批处理程序(如果不⽤call⽽直接调⽤别的批处理⽂件,那么执⾏完那个批处理⽂件后将⽆法返回当前⽂件并执⾏当前⽂件的后续命令)。
call 命令接受⽤作跳转⽬标的标签。如果在脚本或批处理⽂件外使⽤call,它将不会在命令⾏起作⽤。
【2】call命令应⽤
1. 基本应⽤。应⽤⽰例:新建两个⽂本⽂件,⼀个命名为call1,修改⽂件的类型为bat,⽤Notepad++打开编辑内容为:
1 echo running call1
另⼀个命名为call2,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 echo start
3 call call1.bat
4 echo running call2
5 echo end
6 pause
双击执⾏call2⽂件,执⾏结果如下所⽰:
过程解析:
可以很清晰的看到,call调⽤类似于函数调⽤的执⾏逻辑:call2相当于执⾏主函数,在其执⾏过程中,需要调⽤到call1函数,当call1执⾏结束后,call2主函数再继续执⾏本⾝的命令,直⾄整个过程结束。
注意:call1脚本第⼀⾏没有再写@echo off语句。因为call2第⼀⾏已经关闭了命令回显状态,当call2调⽤call1时,此设置同样有效,由此可更深⼊理解调⽤。
2. 调⽤标签。应⽤⽰例:新建两个⽂本⽂件,⼀个命名为call3,修改⽂件的类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 call :label
3 echo 1
4 echo 2
5
6 :label
7 echo 3
8 echo 4
另⼀个命名为call4,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 call call3.bat
3 pause
双击执⾏call4⽂件,执⾏结果如下所⽰:
过程解析:
看到这个结果什么感觉?让你想起了什么呢?想不起来啥?⼀看你若有所茫的样⼦,就知道你把goto与这个搞混了!请看下⽂call命令与goto命令的区别。
3. 调⽤带参数的批处理。应⽤⽰例:新建两个⽂本⽂件,⼀个命名为call7,修改⽂件的类型为bat,⽤Notepad++打开编辑内容为:
1 echo %1 %2
2 echo %3
另⼀个命名为call8,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 call call7.bat hello world 123
3 dir c:\
4 pause
双击执⾏call8⽂件,执⾏结果如下所⽰:
【3】call命令与goto命令的区别
call命令的应⽤⽰例2中,我们看到了call命令对跳转标签的调⽤,注意调⽤时必须在标签名前加冒号,⽽goto是直接跟标签名。
关于goto命令不懂的可以参见同系列随笔
同上例,我们再看看goto的执⾏效果:新建两个⽂本⽂件,⼀个命名为call5,修改⽂件的类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 goto label
3 echo 1
4 echo 2
5
6 :label
7 echo 3
8 echo 4
另⼀个命名为call6,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 call call5.bat
3 pause
双击执⾏call6⽂件,执⾏结果如下所⽰:
⼆、start命令总结
【1】start命令简介
start命令⽐较复杂。查看其帮助⽂档的步骤如下:
1. 同时按下“Win + R”键(或者桌⾯开始-->开始-->运⾏),打开“运⾏”窗⼝,输⼊“cmd”-->确定。
2. 在打开的命令提⽰符窗⼝⾥,输⼊start/?-->回车,查看“start”命令的参数和⽤法说明(注:按任意键可以查看更多后⾯的内容)⽰例截图如下:
3. 命令提⽰符窗⼝⾥,按⾃⼰的使⽤需要,输⼊-->start /具体参数-->回车,即可按⾃⼰的需要、在Windows系统⾥使⽤“start”命令
【2】start命令应⽤
1.基本应⽤。打开系统计算器以及记事本。
新建⼀个⽂本⽂件,命名为start1,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 start calc
2 start notepad
3 exit
执⾏结果:分别打开计算器和记事本,同时终端⼀闪⽽过(因为最后exit)。
【3】start命令与call命令的区别
start命令应⽤⽰例:新建两个⽂本⽂件,⼀个命名为startmain,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 set a=1
3 pause>nul
4 echo start startchild.bat
notepad++5 start startchild.bat
6 echo end start
7 pause>nul
8 echo %b%
9 pause>nul
⼀个命名为startchild,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 echo %a%
3 set b=20
4 pause>nul
双击执⾏startmain.bat,观察其运⾏结果如下图所⽰:
相同的应⽤,如果改为call命令:新建两个⽂本⽂件,⼀个命名为callmain,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 set a=1
3 pause>nul
4 echo call callchild.bat
5 call callchild.bat
6 echo end call
7 pause>nul
8 echo %b%
9 pause>nul
⼀个命名为callchild,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:
1 @echo off
2 echo %a%
3 set b=20
4 pause>nul
双击执⾏callmain.bat,观察其运⾏结果如下图所⽰:
分析结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论