例如,第三个参数是 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>