可以在批處理檔案內的任何地方使用批處理引數,以提取有關環境設定的資訊。
cmd.exe 提供批處理引數擴充套件變數(%0 到%9)。當在批處理檔案中使用批處理引數時,%0 將由批處理檔名替換,而%1 到%9 將由在命令列鍵入的相應引數替換。要訪問超出%9 的引數,必須使用shift命令。有關shift命令的詳細資訊,請參閱 shift
。%*批處理引數是傳遞到批處理檔案中的所有引數(不包括%0)的萬用字元引用。
例如,要將folder1 中的內容複製到folder2,其中%1 和%2 將分別由值folder1 和folder2 替換,請在批處理檔案mybatch.bat 中鍵入如下內容:
xcopy %1\*.* %2
要執行該檔案,請鍵入:
mybatch.bat c:\folder1 d:\folder2
這與在批處理檔案中鍵入如下內容是等效的:
xcopy c:\folder1 \*.* d:\folder2
也可以在批處理引數中使用編輯符。編輯符使用當前的驅動器和目錄資訊將批處理引數作為部分或完整的檔案或目錄名進行擴充套件。要使用編輯符,請鍵入百分號(%) 字元,後面是波形符號(~) 字元,然後鍵入合適的編輯符(即%~modifier
)。下表列出了可在擴充套件中使用的編輯符。
編輯符
描述
%~1
擴充套件%1 並刪除任何外圍引號
("")
。
%~f1
將%1 擴充套件到完全合格的路徑名。
%~d1
將%1 擴充套件到驅動器碟符。
%~p1
將%1 擴充套件到路徑。
%~n1
將%1 擴充套件到檔名。
%~x1
將%1 擴充套件到副檔名。
%~s1
擴充套件的路徑僅包含短名稱。
%~a1
將%1 擴充套件到檔案屬性。
%~t1
將%1 擴充套件到檔案日期
/時間。
%~z1
將%1 擴充套件到檔案大小。
%~$path:1
搜尋path
環境變數中列出的目錄,並將
%1 擴充套件到第乙個找到的目錄的完全合格名稱。如果沒有定義環境變數名稱,或沒有找到檔案,則此編輯符擴充套件成空字串。
編輯符
描述
%~dp1
將%1 擴充套件到驅動器碟符和路徑。
%~nx1
將%1 擴充套件到檔名和副檔名。
%~dp$path:1
在path
環境變數列出的目錄中搜尋
%1,並擴充套件到第乙個找到的目錄的驅動器碟符和路徑。
%~ftza1
將%1 擴充套件到類似dir
的輸出行。
注意%* 編輯符是唯一可代表在批處理檔案中傳遞的所有引數的編輯符。不能將該編輯符與%~ 編輯符組合使用。%~ 語法必須通過有效的引數值來終止。
不能以與使用環境變數相同的方式使用批處理引數。不能搜尋和替換值,或檢查子字串。然而,可以將引數分配給環境變數,然後對該環境變數進行操作。
cmd批處理引數
可以在批處理檔案內的任何地方使用批處理引數,以提取有關環境設定的資訊。cmd.exe 提供批處理引數擴充套件變數 0 到 9 當在批處理檔案中使用批處理引數時,0 將由批處理檔名替換,而 1 到 9 將由在命令列鍵入的相應引數替換。要訪問超出 9 的引數,必須使用shift命令。有關shift命令的...
cmd批處理剪下 CMD批處理複製目錄下所有檔案
從我接觸程式設計時,win7已經是最普及的系統了。然後同步到其他伺服器,而且這種操作也是非常頻繁的,我就想寫個批處理代替我做這些繁瑣的事情吧。但是用我僅知道的一些簡單命令並不能滿足我的需求,copy什麼的命令好像只能複製乙個檔案,也許我不會用.因為我環境有限,並沒有測試xp,不知道xp支不支援。我用...
CMD批處理命令技巧
small tips 如要執行多個命令時,命令之間加 來隔開 結束程式使用taskkill命令。在批處理中實現 等待 延遲 暫停 的方法 以下所有的程式均以等待 延遲 暫停2秒示例 1 比較傳統的設計思路,利用for解析變數 time 並存為乙個時間點,再利用set計算兩個時間點的時間差,最後用if...