其他分享
首页 > 其他分享> > 批处理路径截取路径名,拓展名,裸文件名,驱动器名等

批处理路径截取路径名,拓展名,裸文件名,驱动器名等

作者:互联网

通过命令 call /? 可以得到:

批脚本里的 %* 指出所有的参数(如 %1 %2 %3 %4 %5 ...)

批参数(%n)的替代已被增强。你可以使用以下语法:

%~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 的输出行。

在上面的例子中,%~ 语法被一个有效参数号码终止。%~ 修定符不能跟 %* 使用

例如:

%1="C:\foo bar\alice.bob"

echo %~dp1 得到 C:\foo bar\ 注意引号已经被去掉,需要自己添加回去
echo %~pdxn1 得到 C:\foo bar\alice.bob 即顺序不重要

标签:bar,批处理,路径,扩展,路径名,PATH,驱动器,foo
来源: https://www.cnblogs.com/wsm25/p/16336577.html