這兩個變數都是用來表示當前目錄,可使用時卻大不相同,記錄下
%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都是一樣的(不可改變)
原文: http://blog.csdn.net/luols/article/details/7397757