批处理文件中%~dp0是什么意思?
看批處理文件時,常遇到%~dp0之類的東西,不知其意思。打開Windows XP自帶的幫助系統,搜索“batch”關鍵字,能找到有關介紹批處理文件的幫助。通過幫助我終于明白了%~dp0是什么意思,總結如下:
我們知道,%*是用來指批處理文件傳入的參數。例如%0表示命令本身,%1表示傳入的第一個參數,以此類推。開發一個批處理命令,有時候需要知道這個命令的路徑、傳入參數的路徑等這些與路徑相關的信息。一般的編程語言會提供一些類庫或者API來完成與路徑相關的任務,例如.NET中提供了File類、Directory類和Path類來做這些事情。在批處理文件中,使用%~*來完成與路徑相關的任務,語法規則可以表示如下:
%~(f|d|p|n|x|s|a|t|z|$PATH)*[0-9]
先假定在F:\Temp\Batch目錄下有一個test.bat批處理文件,這里執行的批處理命令行是:
F:\Temp>Batch\test “C:\Program Files\studying.txt”
上述的語法規則解釋如下:
1. %~[0-9]:是指去除了引號的命令行參數
%~0指命令行本身,本例為Batch\test
%~1指第一個參數,本例為C:\Program Files\studying.txt
注:%1也指第一個參數,本例卻為“C:\Program Files\studying.txt”,這里是有引號的。
以此類推……
2. %~f[0-9]:f – full,指絕對路徑名
本例中:%~f0 – F:\Temp\Batch\test.bat
%~f1 –C:\Program Files\studying.txt
3.%~d[0-9]:d – driver,指盤符
本例中:%~d0 – F:
%~d1 –C:
4.%~p[0-9]:p – path,指不帶盤符的目錄名
本例中:%~p0 – \Temp\Batch\ 注:前后都有’\’
%~p1 –\Program Files\
5.%~
n[0-9]:n – name,指文件的名字,注意不帶擴展名
本例中:%~n0 –test
%~n1 –studying
6.%~x[0-9]:x – extension,指文件的擴展名
本例中:%~x0 –.bat 注:前面有’.’
%~x1 –.txt
7.%~s[0-9]:s – short,指帶有DOS短名字(8字符)的絕對路徑
本例中:%~s0 –F:\TEMP\BATCH\test.bat
%~s1 –C:\PROGRA~1\studying.txt
注:這里的目錄名全是大寫,而文件名全是小寫
8.%~a[0-9]:a – attribute,指文件的屬性
本例中:%~a0 ––a——-
%~a1 ––a——-
注:這里每一位代表一種文件屬性,具體的含義我也不知道,待查
9.%~t[0-9]:t – time,指文件的修改日期,注意不是創建日期
本例中:%~t0 –2011-08-28 11:47
%~t1 –2011-08-28 10:30
10.%~z[0-9]:z – size,指文件的大小
11.%~$PATH:[0-9]:PATH 指系統環境變量的那個PATH。搜索PATH里面的目錄,看是否能夠找到命令行參數指定的文件。找到此文件,輸出該文件的絕對路徑;沒有找到此文件,輸出空字符串。
12. 組合使用:上述的這些字符規則是可以組合起來使用的。例如,n和x組合表示帶擴展名的文件名名字。
%~nx0 –test.bat
%~nx1 –studying.txt
回到標題給出的問題,我們可以推測出%~dp0表示的意思。d表示盤符,p表示不帶盤符的路徑,那么dp就表示帶盤符的路徑了。在本例中,我們可以得出:
%~dp0 –F:\Temp\Batch\
總結
以上是生活随笔為你收集整理的批处理文件中%~dp0是什么意思?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 皇室战争全球锦标赛奖励怎么领
- 下一篇: SAP Cloud Applicatio