久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

bat批處理 CALL命令學習

2016-05-02 22:56:37 19097

CALL命令可以在批處理執行過程中調用另一個批處理,當另一個批處理執行完后,再繼續執行原來的批處理

CALL command

調用一條批處理命令,和直接執行命令效果一樣,特殊情況下很有用,比如變量的多級嵌套,見教程后面。在批處理編程中,可以根據一定條件生成命令字符串,用call可以執行該字符串,見例子。

CALL [drive:][path]filename [batch-parameters]

調用的其它批處理程序。filename 參數必須具有 .bat 或 .cmd 擴展名。

CALL :label arguments

調用本文件內命令段,相當于子程序。被調用的命令段以標簽:label開頭

以命令goto :eof結尾。

另外,批腳本文本參數參照(%0、%1、等等)已如下改變:

     批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 ...)

     批參數(%n)的替代已被增強。您可以使用以下語法:(看不明白的直接運行后面的例子)

         %~1         - 刪除引號("),擴充 %1

         %~f1        - 將 %1 擴充到一個完全合格的路徑名

         %~d1        - 僅將 %1 擴充到一個驅動器號

         %~p1        - 僅將 %1 擴充到一個路徑

         %~n1        - 僅將 %1 擴充到一個文件名

         %~x1        - 僅將 %1 擴充到一個文件擴展名

         %~s1        - 擴充的路徑指含有短名

         %~a1        - 將 %1 擴充到文件屬性

         %~t1        - 將 %1 擴充到文件的日期/時間

         %~z1        - 將 %1 擴充到文件的大小

         %~$PATH : 1 - 查找列在 PATH 環境變量的目錄,并將 %1

                       擴充到找到的第一個完全合格的名稱。如果環境

                       變量名未被定義,或者沒有找到文件,此組?鍵會

                       擴充到空字符串

    可以組合修定符來取得多重結果:

        %~dp1       - 只將 %1 擴展到驅動器號和路徑

        %~nx1       - 只將 %1 擴展到文件名和擴展名

        %~dp$PATH:1 - 在列在 PATH 環境變量中的目錄里查找 %1,

                       并擴展到找到的第一個文件的驅動器號和路徑。

        %~ftza1     - 將 %1 擴展到類似 DIR 的輸出行。

    在上面的例子中,%1 和 PATH 可以被其他有效數值替換。

%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*使用

注意:參數擴充時不理會參數所代表的文件是否真實存在,均以當前目錄進行擴展

要理解上面的知識,下面的例子很關鍵。

例:

@echo off

Echo 產生一個臨時文件 > tmp.txt

Rem 下行先保存當前目錄,再將c:windows設為當前目錄

pushd c:windows

Call :sub tmp.txt

Rem 下行恢復前次的當前目錄

Popd

Call :sub tmp.txt

pause

Del tmp.txt

exit

:sub

Echo 刪除引號: %~1

Echo 擴充到路徑: %~f1

Echo 擴充到一個驅動器號: %~d1

Echo 擴充到一個路徑: %~p1 

Echo 擴充到一個文件名: %~n1

Echo 擴充到一個文件擴展名: %~x1

Echo 擴充的路徑指含有短名: %~s1 

Echo 擴充到文件屬性: %~a1 

Echo 擴充到文件的日期/時間: %~t1 

Echo 擴充到文件的大小: %~z1 

Echo 擴展到驅動器號和路徑:%~dp1

Echo 擴展到文件名和擴展名:%~nx1

Echo 擴展到類似 DIR 的輸出行:%~ftza1

Echo.

Goto :eof

例:

set aa=123456

set cmdstr=echo %aa%

call %cmdstr%

pause

本例中如果不用call,而直接運行%cmdstr%,將顯示結果%aa%,而不是123456


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: