批處理-如何對作參數的文件名進行操作
例如,第三個參數是 c:/temp/a.txt如何取第三個參數的文件路徑 c:/temp
SET BIN_DIR=%1 ::取第一個參數
SET RES_DIR=%2 ::取第二個參數
SET TARGET_FILE=%3 ::取第三個參數
SET TARGET_FILE_NAME=%~nx3 ::取第三個參數的文件名
SET TARGET_DIR=%~dp3 ::取第三個參數的路徑
如何對作參數的文件名進行操作?
ECHO %~[<format>]<n>
<format>的取值如下:
%~<n> |
擴展%<n>,然后去除雙引號(" ") |
%~f<n> |
擴展%<n>, 取文件的全路徑/文件名/擴展名,純字符串處理 |
%~d<n> |
擴展%<n>, 取文件的驅動器名 |
%~p<n> |
擴展%<n>, 取文件的路徑名 |
%~n<n> |
擴展%<n>, 取文件名,不包括擴展名 |
%~x<n> |
擴展%<n>, 取文件的擴展名 |
%~s<n> |
擴展%<n>, 只包括短文件名的全路徑/文件名/擴展名 |
%~t<n> |
擴展%<n>, 文件的最后修改時間 |
%~z<n> |
擴展%<n>, 文件的大小 |
%~a<n> |
擴展%<n>, 文件的屬性 |
%~$<var>:<n> |
<var>一般是環境變量PATH, 從中尋找第一個匹配的文件名是%1的文件的全路徑,如果找不到則展開為空 |
以上參數可以組合,其格式是:
%~[{f|d|a|z|s|n|x|t|p}][$<var>:]<n>