batch windows批處理

看批處理文件時,常遇到%~dp0之類的東西,不知其意思。打開Windows XP自帶的幫助系統,搜索「batch」關鍵字,能找到有關介紹批處理文件的幫助。經過幫助我終於明白了%~dp0是什麼意思,總結以下:編程

        咱們知道,%*是用來指批處理文件傳入的參數。例如%0表示命令自己,%1表示傳入的第一個參數,以此類推。開發一個批處理命令,有時候須要知道這個命令的路徑、傳入參數的路徑等這些與路徑相關的信息。通常的編程語言會提供一些類庫或者API來完成與路徑相關的任務,例如.NET中提供了File類、Directory類和Path類來作這些事情。在批處理文件中,使用%~*來完成與路徑相關的任務,語法規則能夠表示以下:編程語言

                        %~(f|d|p|n|x|s|a|t|z|$PATH)*[0-9]spa

        先假定在F:\Temp\Batch目錄下有一個test.bat批處理文件,這裏執行的批處理命令行是:命令行

                        F:\Temp>Batch\test   "C:\Program Files\studying.txt"開發

        上述的語法規則解釋以下:字符串

        1. %~[0-9]:是指去除了引號的命令行參數io

                   %~0指命令行自己,本例爲Batch\test 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\

相關文章
相關標籤/搜索