轉自 https://blog.csdn.net/qq_22642239/article/details/88549969
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
擴展閱讀:
%~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個