這兩個變量都是用來表示當前目錄,可使用時卻大不相同,記錄下
%cd%代表的是執行文件的當前目錄,強調bat是在哪裏啓動的;->盤符展開後是可改變的
%~dp0代表的是bat文件所在的文件目錄,強調bat的文件位置 ->盤符展開後是不可改變的
我們舉個例子來說明會更直觀些
我在桌面新建一個文件夾,裏面創建一份bbb.bat文件,文件內容爲
@echo off
echo cd = %cd%
echo dp0 = %~dp0
pause
exit
echo
然後在桌面創建一份aaa.bat文件,文件內容爲
start "" "%cd%\新建文件夾\bbb.bat"
好,文件創建完畢,我們來看執行情況,分兩種情況執行:
1、直接雙擊運行bbb.bat,我們看到
此時的cd與dp0指向是一樣的,因爲在新建文件夾啓動,所以啓動路徑與文件所在目錄一樣
2、雙擊桌面的aaa.bat,我們看到
因爲我們是通過在桌面的aaa.bat文件啓動,所以此時的啓動路徑就指向了桌面,dp0還是與第一種情況一樣
通過這兩種情況,我們可以很明顯看到cd可以不一樣(取決於在哪裏啓動),但dp0都是一樣的(不可改變)