DOS命令 bat-call的用法


call 從批處理程序調用另一個批處理程序

call有幾種用法

第一種用法,也就是最常用的一種,調用另一個批處理,在被調用的批處理執行完后在執行call下面的命令。如:

@echo off

call a.bat

dir c:\

pause

如果在被調用的批處理里面有參數,調用的時候需要在后面加上參數。

如:

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自己。

(在批處理中,可以使用%*代表所有參數%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:\

pause

這里,在顯示完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 set,在后面講延遲環境變量的時候慢慢體會。

call的第三種用法,調用一個應用程序,call notepad.exe。call可以這么用,但一般在調用應用程序的時候會使用start,很少用call。

call的第四種用法,調用本批處理中的一個標簽。如:

@echo off

call :no1

start notepad.exe

exit

:no1

start calc

ping /n 2 127.1>nul

在這里會先打開計算器,然后打開記事本。在call標簽的時候要加上“:”。

這與goto有什么區別呢?在看一個例子:

@echo off

goto :no1

start notepad.exe

exit

:no1

start calc

ping /n 2 127.1>nul

這里只會打開計算器,並不打開記事本。

因為,goto :no1是轉到標簽:no1處運行,運行完就退出,而call是調用:no1,運行完繼續執行call下面的命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM