Call命令的使用
call 从批处理程序调用另一个批处理程序,子程序也可以是label(可以添加参数)
PS: Call从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
实例一、
a.bat内容:
@echo off
echo %0 %1
b.bat内容:
@echo off
call a.bat hello
dir c:\
pause
那么,在执行b.bat的时候,会将hello赋值给%1,而%0代表a.bat自己。
PS: 传递多个常量参数时,用逗号隔开数据,若不用逗号则以空格为准;若传递为参数时,不必加逗号或者空格区分
Call b.bat 123,456
Call b.bat %b% , %c%结果等同于Call b.bat %b% %c% 结果等同于 Call b.bat %b%%c%
实例二、
call的第四种用法,调用本批处理中的一个标签。如:
@echo off
goto :no1
start notepad.exe
pause
:no1
start calc
ping /n 2127.1>nul
注意:主程序使用goto的用法,跳转后不回来,把主程序中的goto:no1改成call :no1,跳转后依旧回到主程序继续执行,可以使用goto:eof 也可以用exit /b ,具体方法参考cmd命令解释
Goto的使用
以下同一个意思,均是跳转至exp1 的label中
goto exp1
goto :exp1
若有同名的标签段(label),将执行位于最顶层的标签段,其后的标签段是否得到执行,将视具体的情况加以处理。
注意,goto :eof的含义
1. 放在子函数中 为结果子函数。
2.放在函数体中,为结束函数。
Exit的命令使用
exit /B 的含义同样是退出子程序,并且可以添加exitcode配合errorlevel使用