call命令
一、call命令總結(jié)
【1】call命令簡(jiǎn)介
學(xué)過(guò)匯編或C的朋友,肯定都知道call指令表示什么意思。其實(shí),在這里它的意思也是一樣的。在批處理腳本中,call命令用來(lái)從一個(gè)批處理腳本中調(diào)用另一個(gè)批處理腳本。
語(yǔ)法:?call?[ [Drive:] [Path]?FileName?[BatchParameters]]?[:label?[arguments]]
參數(shù):?[Drive:][Path]?FileName??指定要調(diào)用的批處理程序的位置和名稱。Filename?參數(shù)必須是.bat?或?.cmd?擴(kuò)展名的類型文件。
BatchParameters 指定批處理程序所需的命令行信息(即參數(shù)項(xiàng))。 ??
調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序(如果不用call而直接調(diào)用別的批處理文件,那么執(zhí)行完那個(gè)批處理文件后將無(wú)法返回當(dāng)前文件并執(zhí)行當(dāng)前文件的后續(xù)命令)。 ??
call 命令接受用作跳轉(zhuǎn)目標(biāo)的標(biāo)簽。如果在腳本或批處理文件外使用call,它將不會(huì)在命令行起作用。
【2】call命令應(yīng)用
1. 基本應(yīng)用。應(yīng)用示例:新建兩個(gè)文本文件,一個(gè)命名為call1,修改文件的類型為bat,用Notepad++打開編輯內(nèi)容為:
1 echo running call1
另一個(gè)命名為call2,修改文件類型為bat,用Notepad++打開編輯內(nèi)容為:
1 @echo off2 echo start3 call call1.bat4 echo running call25 echo end6 pause
雙擊執(zhí)行call2文件,執(zhí)行結(jié)果如下所示:
過(guò)程解析:
可以很清晰的看到,call調(diào)用類似于函數(shù)調(diào)用的執(zhí)行邏輯:call2相當(dāng)于執(zhí)行主函數(shù),在其執(zhí)行過(guò)程中,需要調(diào)用到call1函數(shù),當(dāng)call1執(zhí)行結(jié)束后,call2主函數(shù)再繼續(xù)執(zhí)行本身的命令,直至整個(gè)過(guò)程結(jié)束。
注意:call1腳本第一行沒有再寫@echo off語(yǔ)句。因?yàn)閏all2第一行已經(jīng)關(guān)閉了命令回顯狀態(tài),當(dāng)call2調(diào)用call1時(shí),此設(shè)置同樣有效,由此可更深入理解調(diào)用。
2. 調(diào)用標(biāo)簽。應(yīng)用示例:新建兩個(gè)文本文件,一個(gè)命名為call3,修改文件的類型為bat,用Notepad++打開編輯內(nèi)容為:
1 @echo off2 call :label3 echo 14 echo 25 6 :label7 echo 38 echo 4
另一個(gè)命名為call4,修改文件類型為bat,用Notepad++打開編輯內(nèi)容為:
1 @echo off2 call call3.bat3 pause
雙擊執(zhí)行call4文件,執(zhí)行結(jié)果如下所示:
過(guò)程解析:
看到這個(gè)結(jié)果什么感覺?讓你想起了什么呢?想不起來(lái)啥?一看你若有所茫的樣子,就知道你把goto與這個(gè)搞混了!請(qǐng)看下文call命令與goto命令的區(qū)別。
3. 調(diào)用帶參數(shù)的批處理。應(yīng)用示例:新建兩個(gè)文本文件,一個(gè)命名為call7,修改文件的類型為bat,用Notepad++打開編輯內(nèi)容為:
1 echo %1 %22 echo %3
另一個(gè)命名為call8,修改文件類型為bat,用Notepad++打開編輯內(nèi)容為:
1 @echo off2 call call7.bat hello world 1233 dir c:\4 pause
雙擊執(zhí)行call8文件,執(zhí)行結(jié)果如下所示:
【3】call命令與goto命令的區(qū)別
call命令的應(yīng)用示例2中,我們看到了call命令對(duì)跳轉(zhuǎn)標(biāo)簽的調(diào)用,注意調(diào)用時(shí)必須在標(biāo)簽名前加冒號(hào),而goto是直接跟標(biāo)簽名。
關(guān)于goto命令不懂的可以參見同系列隨筆《批處理命令——goto 和 :》
同上例,我們?cè)倏纯磄oto的執(zhí)行效果:新建兩個(gè)文本文件,一個(gè)命名為call5,修改文件的類型為bat,用Notepad++打開編輯內(nèi)容為:
1 @echo off2 goto label3 echo 14 echo 25 6 :label7 echo 38 echo 4
另一個(gè)命名為call6,修改文件類型為bat,用Notepad++打開編輯內(nèi)容為:
1 @echo off2 call call5.bat3 pause
雙擊執(zhí)行call6文件,執(zhí)行結(jié)果如下所示:
總結(jié)
- 上一篇: 福田中心区城天健世纪花园航拍看楼体和周围
- 下一篇: 测试手机屏幕显示,触摸