一天一篇批处理之——Part4:流程控制及调用命令goto,call,start

一天一篇批处理之——Part4:流程控制及调用命令goto,call,start

一,goto
goto是一个流程控制转向的命令,命令在运行到goto时会跳过该语句下面的指令,转到运行goto链接的标签后面的命令。goto命令是成套出现的。如”goto tag”和”:tag”是配套使用的。
例1.1
echo welcome to our blog
goto csdn
echo welcome to my blog
:csdn
echo welcome to CSDN blog
显示:
welcome to our blog
welcome to CSDN blog

这里在运行完echo welcome to our blog 后goto命令使得跳过了echo welcome to our blog,而是到以:csdn标签为开头接着运行后名的命令echo welcome to CSDN blog。
二,call
call是一个命令调用/程序调用的命令,可以用来调用其他批处理程序,如例2.1;也可以用来调用指定标签,但是这种用法跟goto不同的是,call在调用指定标签时,在运行完标签后所有命令后会回到调用时的位置继续运行命令,而不是简单的跳过中间命令,如例2.2。
例2.1
echo welcome to A blog
call b.bat
echo welcome to C blog
显示:
welcome to A blog
welcome to B blog
welcome to C blog

注:其中b.bat文件中只有一条命令,即echo welcome to B blog
例2.2
echo welcome to A blog
call :b
echo welcome to C blog
:b
echo welcome to B blog
显示:
welcome to A blog
welcome to B blog
welcome to C blog
welcome to B blog
这个例子是call调用程序中内部标签,在运行到call时,先运行call标签所指后面的命令,在运行完标签后面的命令后又回到call语句后的命令接着运行。可以试想一下这里换成goto b后会是什么样的结果?
三,start
Start也是用来调用其他程序的命令,但是与call不同的是,start在调用其他程序时是在新的窗口执行,效果相当于在执行到start命令时双击打开了它所调用的程序。
例3.1
echo welcome to A blog
start b.bat
echo welcome to C blog
这时会有两个显示窗口
窗口1显示:
welcome to A blog
welcome to C blog

窗口2显示:
welcome to B blog
(注:b.bat文件中命令只有echo welcome to B blog)
当然这是最简单的例子,start命令是可以加上一些参数/开关来达到自己想要的运行效果。
例3.2
echo welcome to A blog
start "显示b.bat批处理" /dD:\ /max /wait b.bat
echo welcome to C blog
这时也会有两个显示窗口
窗口1显示:
Welcome to A blog
窗口2显示:
welcome to No.1 blog
在窗口2输入exit退出后,窗口1显示
Welcome to A blog
Welcome to C blog
这里用到了如下参数/开关:
1. "显示b.bat批处理":指定在窗口2标题栏显示标题为“显示b.bat批处理”;
2. /dD:\:指定调用文件的目录,即后面调用的b.bat文件是在D盘下面,而不是例3.1中调用的b.bat;
3. /max:启动b.bat时窗口最大化,当然/min就是让其最小化了;
4. /wait:这个开关是要让所调用的程序走完才能继续运行原来程序的命令;
这也只是使用频率较高的参数,还有其他一些优先级等参数读者可以自己网上查阅。

 

PS:纯手工制作,新人一枚,一起学习,个人笔记,如有不妥,感谢指正!


你可能感兴趣的:(Batch批处理)