1. 程式人生 > >%cd% 和%~dp0%的區別及cd跨碟符切換路徑問題

%cd% 和%~dp0%的區別及cd跨碟符切換路徑問題

在DOS中,有兩個環境變數可以跟當前路徑有關,一個是%cd%, 一個是%~dp0。

(1)%cd%的內容是可以被改變的,其內容為命令的執行路徑或批處理檔案的執行路徑。

(2)%~dp0只可以用在批處理檔案中,它是由它所在的批處理檔案的目錄位置決定的,

是批處理檔案所在的碟符:+路徑.   在C:\Users\xx\Desktop\tmp目錄下有指令碼cdTest.bat
@echo off     
echo this is %%cd%%  %cd%     
echo this is %%~dp0 %~dp0   

echo switch to another folder:
cd 
/d D:\aQproject echo this is %%cd%% %cd% echo this is %%~dp0 %~dp0 pause

在tmp目錄中執行cdTest.bat指令碼結果如下

在d盤執行cdTest.bat指令碼結果如下

可以看到執行指令碼的路徑不一樣,%cd%不一樣;指令碼中通過cd /d切換到別的路徑,得到的環境變數%cd%的值也不一樣。

 

PS:上面例項中用的是cd  /d能夠直接跨碟符切換,指令碼在c盤切換到d盤中。直接cd +別的碟符路徑是不能切換的,要通過先輸入d:(碟符)切換到所要去碟符,cd +路徑實現切換。可以看出cd  /d直接切換更方便,在批處理檔案找那個很方便。