淺談批處理中的%cd%與%~dp0【轉】

weixin_34162629發表於2016-05-23

這兩個變數都是用來表示當前目錄,可使用時卻大不相同,記錄下

%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

相關文章