【轉載】DOS批處理中%cd%和%~dp0的異同

最近在讀別人程序的時候,碰到了批處理文件的一些問題,在此記錄一下。
在DOS的批處理中,有時候需要知道當前的路徑。在DOS中,有兩個環境變量可以跟當前路徑有關,一個是%cd%, 一個是%~dp0。
 
   這兩個變量的用法和代表的內容一般是不同的。
 
  1. %cd% 可以用在批處理文件中,也可以用在命令行中;展開後,是驅動器盤符:+當前目錄,如:
 
   在 c:\dir 下,
 
Bat代碼 
  1. echo %cd%  
 
   顯示爲,
 
Bat代碼 
  1. c:\dir  
 
   %cd%的時間內容是可以被改變的,比如CD命令就可以改變它的內容。
 
 2. %~dp0    只可以用在批處理文件中,它是由它所在的批處理文件的目錄位置決定的,是批處理文件所在的盤符:+路徑。在執行這個批處理文件的過程中,它展開後的內容是不可以改變的。
 
 
  比如在D盤下有個批處理文件,dirshow.bat:
 
Bat代碼 
  1. @echo off  
  2. echo this is %%cd%%  %cd%  
  3. echo this is %%~dp0 %~dp0  
 
   在C:\ 下執行它,輸出爲:
 
Bat代碼 
  1. C:\>D:\dirshow.bat  
  2. this is %cd%  C:\  
  3. this is %~dp0 D:\  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章