標(biāo)題:
call 從批處理程序調(diào)用另一個(gè)批處理程序
[打印本頁]
作者:
51黑fan
時(shí)間:
2016-1-30 01:01
標(biāo)題:
call 從批處理程序調(diào)用另一個(gè)批處理程序
call
有幾種用法
第一種用法,也就是最常用的一種,調(diào)用另一個(gè)批處理,在被調(diào)用的批處理執(zhí)行完后在執(zhí)行
call
下面的命令。如:
@echo off
call a.bat
dir c:\
pause
如果在被調(diào)用的批處理里面有參數(shù),調(diào)用的時(shí)候需要在后面加上參數(shù)。
如:
a.bat
內(nèi)容:
@echo off
echo %0 %1
b.bat
內(nèi)容:
@echo off
call a.bat hello
dir c:\
pause
那么,在執(zhí)行
b.bat
的時(shí)候,會(huì)將
hello
賦值給
%1
,而
%0
代表
a.bat
自己。
(在批處理中,可以使用
%*
代表所有參數(shù)
%1-%9
代表
9
個(gè)參數(shù),
%0
代表批處理自己,其擴(kuò)展用法見
call /?
,在講
for
的時(shí)候也會(huì)講到)
在這里講下
goto :eof
的用法,如:
a.bat
內(nèi)容:
@echo off
echo %0 %1
goto :eof
b.bat
內(nèi)容:
@echo off
call a.bat hello
dir c:\
pause
這里,在顯示完
hello
后,會(huì)執(zhí)行
dir c:\
并暫停,如果將
goto :eof
改成
exit
,在顯示完
hello
后就會(huì)自動(dòng)退出。因?yàn)?font face="Times New Roman">goto :eof后會(huì)轉(zhuǎn)到
a.bat
結(jié)尾,即只退出
a.bat
然后會(huì)繼續(xù)執(zhí)行
dir
;由于
call a.bat
,在執(zhí)行
a.bat
和
b.bat
是一個(gè)
CMD
窗口,
exit
的話就會(huì)直接退出這個(gè)窗口,這就是
goto :eof
和
exit
區(qū)別。
call
的第二種用法,調(diào)用一個(gè)命令,如:
call ping 127.1
,這和直接
ping 127.1
看似是一樣的,但還是有區(qū)別的。主要用法就是
call set
,在后面講延遲環(huán)境變量的時(shí)候慢慢體會(huì)。
call
的第三種用法,調(diào)用一個(gè)應(yīng)用程序,
call notepad.exe
。
call
可以這么用,但一般在調(diào)用應(yīng)用程序的時(shí)候會(huì)使用
start
,很少用
call
。
call
的第四種用法,調(diào)用本批處理中的一個(gè)標(biāo)簽。如:
@echo off
call :no1
start notepad.exe
exit
:no1
start calc
ping /n 2 127.1>nul
在這里會(huì)先打開計(jì)算器,然后打開記事本。在
call
標(biāo)簽的時(shí)候要加上“:”。
這與
goto
有什么區(qū)別呢?在看一個(gè)例子:
@echo off
goto :no1
start notepad.exe
exit
:no1
start calc
ping /n 2 127.1>nul
這里只會(huì)打開計(jì)算器,并不打開記事本。
因?yàn)椋?font face="Times New Roman">goto :no1是轉(zhuǎn)到標(biāo)簽
:no1
處運(yùn)行,運(yùn)行完就退出,而
call
是調(diào)用
:no1
,運(yùn)行完繼續(xù)執(zhí)行
call
下面的命令
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1