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


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

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

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

*********************************************

如果一個install.bat文件位於D:\jeesite\bin
文件內容如下:

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

運行install.bat,命令行輸出如下

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

即:

  • %0代表文件本身
  • d代表盤符
  • p代表路徑

擴展的選項還包括:

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

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

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

[INFO] install

  • %~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.bat

this is %cd% c:\
this is %~dp0 d:\


c:\>e:
e:\>d:\Path.bat

this is %cd% e:\
this is %~dp0 d:\




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM