%~dp0 “d”爲Drive的縮寫,即爲驅動器,磁盤、“p”爲Path縮寫,即爲路徑,目錄
cd是轉到這個目錄,不過我覺得cd /d %~dp0 還好些
選項語法:
~0 - 刪除任何引號("),擴充 %0
%~f0 - 將 %0 擴充到一個完全合格的路徑名(“f”是file,即文件)
%~d0 - 僅將 %0 擴充到一個驅動器號
%~p0 - 僅將 %0 擴充到一個路徑
%~n0 - 僅將 %0 擴充到一個文件名(“n”是name 文件名)
%~x0 - 僅將 %0 擴充到一個文件擴展名
%~s0 - 擴充的路徑只含有短名(“s”爲Short,短的)
%~a0 - 將 %0 擴充到文件的文件屬性(“a”爲attribute,即屬性)
%~t0 - 將 %0 擴充到文件的日期/時間(“t”time)
%~z0 - 將 %0 擴充到文件的大小(Size 大小)
%~$PATH:0 - 查找列在路徑環境變量的目錄,並將 %0 擴充
到找到的第一個完全合格的名稱。如果環境變量名
未被定義,或者沒有找到文件,此組合鍵會擴充到
空字符串
可以組合修飾符來得到多重結果:
%~dp0 - 僅將 %0 擴充到一個驅動器號和路徑
%~nx0 - 僅將 %0 擴充到一個文件名和擴展名
%~fs0 - 僅將 %0 擴充到一個帶有短名的完整路徑名
%~dp$PATH:0 - 查找列在路徑環境變量的目錄,並將 %I 擴充
到找到的第一個驅動器號和路徑。
%~ftza0 - 將 %0 擴充到類似輸出線路的 DIR
%0爲當前批處理文件
如果0換成1爲第一個文件,2爲第2個
例如:
cd /d %~dp0%是什麼意思?
批處理文件中的一條語句
意思是:更改當前目錄爲批處理本身的目錄 比如你有個批處理a.bat在D:/qq文件夾下 a.bat內容爲 cd /d %~dp0 在這裏: cd /d %~dp0的意思就是cd /d d:/qq %0代表批處理本身 d:/qq/a.bat ~dp是變量擴充 d既是擴充到分區號 d: p就是擴充到路徑 /qq dp就是擴充到分區號路徑 d:/qq |
另:
詳細請參考call /?
D:/Documents and Settings/test>call /?
從批處理程序調用另一個批處理程序。
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批處理程序所需的命令行信息。
如果命令擴展名被啓用,CALL 會如下改變:
CALL 命令現在將卷標當作 CALL 的目標接受。語法是:
CALL:label arguments
一個新的批文件上下文由指定的參數所創建,控制在卷標被指定
後傳遞到語句。您必須通過達到批腳本文件末兩次來 "exit" 兩次。
第一次讀到文件末時,控制會回到 CALL 語句的緊後面。第二次
會退出批腳本。鍵入 GOTO /?,參看 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 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*使用