DOS批處理命令-call命令


call命令

在批處理中調用別的批處理或者可運行程序或者

バッチ プログラムを別のバッチ プログラムから呼び出します。

語法

1、CALL [驅動盤符:][路徑]文件名 [參數]

調用並執行[驅動盤符:][路徑]文件名對應的處理程序,並將參數傳遞給該處理(參數之間用空白字符隔開)

這樣就支持了bat程序的擴展

例如,我們可以調用bat,vbs,exe等處理來擴展bat程序的處理能力。

@echo off
call F:\tmp\called.bat "hello world"

在路徑【F:\tmp\】下面建個【called.bat】文件

文件內添加以下代碼

@echo off
echo %1

* %1是輸出傳遞該處理的第一個參數

運行結果為:

"hello world"

在例如,我們使用記事本來打開我們called.bat文件

notepad a.bat

執行上面這條語句,就會使用記事本來打開當前路徑下的a.bat文件。

 

2、CALL :標號 引數

將引數傳遞給標號指定的處理,並將執行標號指定的處理,然后返回調用處,繼續執行下面的處理。

@echo off
call :called "test call"

:called
echo begin called
echo %1
echo end called

運行結果(a.bat a.bat):

begin called
"test call"
end called
begin called
a.bat
end called

發現標簽內的部分被執行了兩邊。投一次是call調用的時候執行的("test call"),call執行后,bat順序執行以后,接下來是繼續執行下標號的內容(a.bat

解決這個問題,我們需要在我們需要終止的時候,添加一個【exit /b】出來

 

程序修改以后:

@echo off
call :called1 "test call1"
call :called2 "test call2"

exit /b

:called1
SETLOCAL
    echo %1
    exit /b
ENDLOCAL

:called2
SETLOCAL
    echo %1
    exit /b
ENDLOCAL

執行結果:

"test call1"
"test call2"

看到這個地方執行狀況,你不是覺得這個東西很像一個函數呢?

應該說這就是一個函數。以后我們想提取函數的時候就這么寫了。


免責聲明!

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



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