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