- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機(jī)構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機(jī)構(gòu):新網(wǎng)數(shù)碼
CALL命令可以在批處理執(zhí)行過程中調(diào)用另一個批處理,當(dāng)另一個批處理執(zhí)行完后,再繼續(xù)執(zhí)行原來的批處理
CALL command
調(diào)用一條批處理命令,和直接執(zhí)行命令效果一樣,特殊情況下很有用,比如變量的多級嵌套,見教程后面。在批處理編程中,可以根據(jù)一定條件生成命令字符串,用call可以執(zhí)行該字符串,見例子。
CALL [drive:][path]filename [batch-parameters]
調(diào)用的其它批處理程序。filename 參數(shù)必須具有 .bat 或 .cmd 擴(kuò)展名。
CALL :label arguments
調(diào)用本文件內(nèi)命令段,相當(dāng)于子程序。被調(diào)用的命令段以標(biāo)簽:label開頭
以命令goto :eof結(jié)尾。
另外,批腳本文本參數(shù)參照(%0、%1、等等)已如下改變:
批腳本里的 %* 指出所有的參數(shù)(如 %1 %2 %3 %4 %5 ...)
批參數(shù)(%n)的替代已被增強。您可以使用以下語法:(看不明白的直接運行后面的例子)
%~1 - 刪除引號("),擴(kuò)充 %1
%~f1 - 將 %1 擴(kuò)充到一個完全合格的路徑名
%~d1 - 僅將 %1 擴(kuò)充到一個驅(qū)動器號
%~p1 - 僅將 %1 擴(kuò)充到一個路徑
%~n1 - 僅將 %1 擴(kuò)充到一個文件名
%~x1 - 僅將 %1 擴(kuò)充到一個文件擴(kuò)展名
%~s1 - 擴(kuò)充的路徑指含有短名
%~a1 - 將 %1 擴(kuò)充到文件屬性
%~t1 - 將 %1 擴(kuò)充到文件的日期/時間
%~z1 - 將 %1 擴(kuò)充到文件的大小
%~$PATH : 1 - 查找列在 PATH 環(huán)境變量的目錄,并將 %1
擴(kuò)充到找到的第一個完全合格的名稱。如果環(huán)境
變量名未被定義,或者沒有找到文件,此組?鍵會
擴(kuò)充到空字符串
可以組合修定符來取得多重結(jié)果:
%~dp1 - 只將 %1 擴(kuò)展到驅(qū)動器號和路徑
%~nx1 - 只將 %1 擴(kuò)展到文件名和擴(kuò)展名
%~dp$PATH:1 - 在列在 PATH 環(huán)境變量中的目錄里查找 %1,
并擴(kuò)展到找到的第一個文件的驅(qū)動器號和路徑。
%~ftza1 - 將 %1 擴(kuò)展到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數(shù)值替換。
%~ 語法被一個有效參數(shù)號碼終止。%~ 修定符不能跟 %*使用
注意:參數(shù)擴(kuò)充時不理會參數(shù)所代表的文件是否真實存在,均以當(dāng)前目錄進(jìn)行擴(kuò)展
要理解上面的知識,下面的例子很關(guān)鍵。
例:
@echo off
Echo 產(chǎn)生一個臨時文件 > tmp.txt
Rem 下行先保存當(dāng)前目錄,再將c:windows設(shè)為當(dāng)前目錄
pushd c:windows
Call :sub tmp.txt
Rem 下行恢復(fù)前次的當(dāng)前目錄
Popd
Call :sub tmp.txt
pause
Del tmp.txt
exit
:sub
Echo 刪除引號: %~1
Echo 擴(kuò)充到路徑: %~f1
Echo 擴(kuò)充到一個驅(qū)動器號: %~d1
Echo 擴(kuò)充到一個路徑: %~p1
Echo 擴(kuò)充到一個文件名: %~n1
Echo 擴(kuò)充到一個文件擴(kuò)展名: %~x1
Echo 擴(kuò)充的路徑指含有短名: %~s1
Echo 擴(kuò)充到文件屬性: %~a1
Echo 擴(kuò)充到文件的日期/時間: %~t1
Echo 擴(kuò)充到文件的大?。?%~z1
Echo 擴(kuò)展到驅(qū)動器號和路徑:%~dp1
Echo 擴(kuò)展到文件名和擴(kuò)展名:%~nx1
Echo 擴(kuò)展到類似 DIR 的輸出行:%~ftza1
Echo.
Goto :eof
例:
set aa=123456
set cmdstr=echo %aa%
call %cmdstr%
pause
本例中如果不用call,而直接運行%cmdstr%,將顯示結(jié)果%aa%,而不是123456
提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP