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:\