批處理——%cd%與%~dp0

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

%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都是一樣的(不可改變)

 

發佈了55 篇原創文章 · 獲贊 20 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章