Windows批处理中的路径操作符 (percent tilde %~)
-
需要先知道的是
批处理传入的命令行参数以%1~%9表示,且%0表示批处理文件本身。
-
常见做法
-
cd /d %~dp0
切换当前目录到批处理文件所在的目录。 -
xxx -i %1 -o "%~dp1%~n1_out%~x1"
使用xxx
命令处理参数1指定的文件,并输出到同一目录下文件名附加_out
,不改变输出文件的后缀名。
-
-
解释
Windows批处理中的
%~
可以作用于变量名为单个字母/数字的表示路径的字符串变量- 功能1:分割路径,输出路径的各个部分。处理过后的字符串默认不包含前后双引号。而
%~
后面紧跟的字符则决定了要提取路径字符串的哪一部分。 - 功能2:获取关于该文件的一些信息。
- 功能1:分割路径,输出路径的各个部分。处理过后的字符串默认不包含前后双引号。而
-
速查表
假定有变量
%F = "d:\abc\efg.txt"
,则有:命令 解释 输出 %~F 输出不带引号的路径字符串 d:\abc\efg.txt %~dF 输出驱动器符 d: %~pF 输出文件夹路径,不包括驱动器符 \abc\ %~nF 输出文件名,不包括扩展符 efg %~xF 输出扩展名 .txt %~aF 输出文件属性 --a------ %~tF 输出最后修改时间,输出格式与系统区域设置一致 2023/06/28 08:46 %~zF 输出文件大小,以字节计 151040 %~sF (极少使用)输出8.3格式的路径名 其中
dpnxs
可以组合使用,例如上面的%~dp0
,常用的还有%~nx
等。所以不难理解
%~dp1%~n1_out%~x1
:%~dp1
为参数1的驱动器符和路径,%~n1
为参数1的文件名部分,_out
为普通的字符串,%~x1
为参数1的文件扩展名。注意:这个
%~
只能用于变量名为单个字母/数字的变量。注意:这个
%~
只能用于变量名为单个字母/数字的变量。注意:这个
%~
只能用于变量名为单个字母/数字的变量。
标题:Windows批处理中的路径操作符 (percent tilde %~)
作者:joyqat
地址:https://joyqat.top/articles/2023/06/28/1687937186867.html