DOS批處理中%~dp0表示什麼意思

https://www.jianshu.com/p/5a1a882ead95html

https://www.cnblogs.com/cnpirate/p/5282324.htmlthis

https://www.cnblogs.com/langtianya/p/5171169.htmlspa

*********************************************命令行

若是一個install.bat文件位於D:\jeesite\bin
文件內容以下:code

@echo off
echo [INFO] This is a demo.
echo [INFO] %~dp0
pause

運行install.bat,命令行輸出以下htm

[INFO] This is a demo.
[INFO] D:\jeesite\bin\blog

即:

  • %0表明文件自己
  • d表明盤符
  • p表明路徑

擴展的選項還包括:字符串

  • %~f0 - 完整的路徑+文件名

[INFO] D:\jeesite\bin\install.batget

  • %~n0 - 文件名(無擴展名)

[INFO] installit

  • %~x0 - 文件擴展名

[INFO] .bat

%~s0        - 擴充的路徑只含有短名(「s」爲Short,短的)
%~a0        - 將 %0 擴充到文件的文件屬性(「a」爲attribute,即屬性)
%~t0        - 將 %0 擴充到文件的日期/時間(「t」time)
%~z0        - 將 %0 擴充到文件的大小(Size 大小)
*****************************

轉載自 www.cnblogs.com/yxsylyh 轉載內容以下:

cd /D %~dp0的意思以下:

更改當前目錄爲批處理自己的目錄 
好比你有個批處理a.bat在D:\qq文件夾下 
a.bat內容爲 
cd /d %~dp0 
在這裏 
cd /d %~dp0的意思就是cd /d d:\qq 
%0表明批處理自己 d:\qq\a.bat 
~dp是變量擴充 
d既是擴充到分區號 d: 
p就是擴充到路徑 \qq 
dp就是擴充到分區號路徑 d:\qq 

擴展閱讀:

%~dp0 「d」爲Drive的縮寫,即爲驅動器,磁盤、「p」爲Path縮寫,即爲路徑,目錄
cd是轉到這個目錄,不過我以爲cd /d %~dp0 還好些

選項語法:

~0 - 刪除任何引號("),擴充 %0
%~f0 - 將 %0 擴充到一個徹底合格的路徑名(「f」是file,即文件)
%~d0 - 僅將 %0 擴充到一個驅動器號
%~p0 - 僅將 %0 擴充到一個路徑
%~n0 - 僅將 %0 擴充到一個文件名(「n」是name 文件名)
%~x0 - 僅將 %0 擴充到一個文件擴展名
%~s0 - 擴充的路徑只含有短名(「s」爲Short,短的)
%~a0 - 將 %0 擴充到文件的文件屬性(「a」爲attribute,即屬性)
%~t0 - 將 %0 擴充到文件的日期/時間(「t」time)
%~z0 - 將 %0 擴充到文件的大小(Size 大小)
%~$PATH:0 - 查找列在路徑環境變量的目錄,並將 %0 擴充
到找到的第一個徹底合格的名稱。若是環境變量名
未被定義,或者沒有找到文件,此組合鍵會擴充到
空字符串

能夠組合修飾符來獲得多重結果:

%~dp0 - 僅將 %0 擴充到一個驅動器號和路徑
%~nx0 - 僅將 %0 擴充到一個文件名和擴展名
%~fs0 - 僅將 %0 擴充到一個帶有短名的完整路徑名
%~dp$PATH:0 - 查找列在路徑環境變量的目錄,並將 %I 擴充
到找到的第一個驅動器號和路徑。
%~ftza0 - 將 %0 擴充到相似輸出線路的 DIR

%0爲當前批處理文件
若是0換成1爲第一個文件,2爲第2個

*************************
DOS批處理中%cd%和%~dp0的區別
 
在DOS的批處理中,有時候須要知道當前的路徑。
在DOS中,有兩個環境變量能夠跟當前路徑有關,一個是%cd%, 一個是%~dp0。
 
    這兩個變量的用法和表明的內容是不一樣的。
 
    1. %cd% 能夠用在批處理文件中,也能夠用在命令行中;
展開後,是驅動器盤符:+當前目錄,如在 dos窗口中進入c:\dir目錄下面,  www.2cto.com  
輸入:echo %cd% ,則顯示爲:c:\dir 。
 
   %cd%的內容是能夠被改變的,其內容爲命令的執行路徑或批處理文件的執行路徑。
    2.%~dp0只能夠用在批處理文件中,它是由它所在的批處理文件的目錄位置決定的,
是批處理文件所在的盤符:+路徑。在執行這個批處理文件的過程當中,
它展開後的內容是不能夠改變的。好比在D盤下有個批處理文件,path.bat,其內容爲:
 
[plain]
@echo off     
echo this is %%cd%%  %cd%     
echo this is %%~dp0 %~dp0   
 
在C:\ 和E:\分別下執行它,輸出爲c:\>d:\Path.batthis is %cd% c:\this is %~dp0 d:\c:\>e:e:\>d:\Path.batthis is %cd% e:\this is %~dp0 d:\
相關文章
相關標籤/搜索