dos命令bat-call的⽤法
call 从批处理程序调⽤另⼀个批处理程序
call有⼏种⽤法
第⼀种⽤法,也就是最常⽤的⼀种,调⽤另⼀个批处理,在被调⽤的批处理执⾏完后在执⾏call下⾯的命令。如:
@echo off
call a.bat
dir c:\
ofopau
如果在被调⽤的批处理⾥⾯有参数,调⽤的时候需要在后⾯加上参数。
如:
a.bat内容:
@echo off
echo %0 %1
b.bat内容:
@echo off
call a.bat hello
dir c:\
pau
那么,在执⾏b.bat的时候,会将hello赋值给%1,⽽%0代表a.bat⾃⼰。
(在批处理中,可以使⽤%*代表所有参数%1-%9代表9个参数,%0代表批处理⾃⼰,其扩展⽤法见call /?,在讲for的时候也会讲到)
在这⾥讲下goto :eof的⽤法,如:
a.bat内容:
@echo off
echo %0 %1
goto :eof
b.bat内容:
@echo off
call a.bat hello
dir c:\
pau自制风车
这⾥,在显⽰完hello后,会执⾏dir c:\并暂停,如果将goto :eof改成exit,在显⽰完hello后就会⾃动退出。因为goto :eof后会转到a.bat结尾,即只退出a.bat然后会继续执⾏dir;由于call a.bat,在执⾏a.bat和b.bat是⼀个CMD窗⼝,exit的话就会直接退出这个窗⼝,这就是goto :eof 和exit区别。
call的第⼆种⽤法,调⽤⼀个命令,如:call ping 127.1,这和直接ping 127.1看似是⼀样的,但还是
有区别的。主要⽤法就是call t,在后⾯讲延迟环境变量的时候慢慢体会。
call的第三种⽤法,调⽤⼀个应⽤程序,。call可以这么⽤,但⼀般在调⽤应⽤程序的时候会使⽤start,很少⽤call。
call的第四种⽤法,调⽤本批处理中的⼀个标签。如:
@echo off
call :no1
秋季吃什么
exit鼓的英文怎么读
:no1
start calc西游记照片
吉他d和弦
ping /n 2 127.1>nul
在这⾥会先打开计算器,然后打开记事本。在call标签的时候要加上“:”。
这与goto有什么区别呢?在看⼀个例⼦:
脂肪块@echo off
goto :no1
exit
:no1
start calc
ping /n 2 127.1>nul
领结婚证需要带什么
这⾥只会打开计算器,并不打开记事本。
因为,goto :no1是转到标签:no1处运⾏,运⾏完就退出,⽽call是调⽤:no1,运⾏完继续执⾏call下⾯的命令