【轉】在cmd/bat腳本中獲取當前腳本文件所在目錄


一、關於cd的/d參數

關於cd 的/d參數,在cmd中敲入cd /?
可以看到/d參數的解釋如下:

使用 /D 命令行開關,除了改變驅動器的當前目錄之外,還可改變當前驅動器。這句話不太好理解,我做個試驗:

1.1 window7系統中打開cmd窗口時,會顯示

2.2 執行“cd e:\xxx”命令,發現目錄依然還是在C:\Windows\system32

2.3 此時輸入d:,不但會切換到d盤,而且會會發現E盤上的當前目錄為d:/xxx

2.4 如果使用/d參數,可以直接切換到d:\xxx目錄

 

結論:不加/d參數只能在同一驅動器的目錄之間切換,加上/d參數則能在不同驅動器之間的目錄之間切換。

二、關於%~dp0的批處理命令的詳細解釋

對此命令並不清楚,以下內容都來自百度搜索結果:
%~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個
*********************************************************************************************
%0             代指批處理文件自身
%~d0        是指批處理所在的盤符
%~dp0      是盤符加路徑
cd %~dp0 就是進入批處理所在目錄了


原文鏈接:https://blog.csdn.net/xieyunc/article/details/80471107


免責聲明!

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



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