BAT批处理操作文件路径的选项语法和组合修饰符
微wx笑 2023-01-15【操作系统】 0 0关键字: bat 批处理
本文介绍使用BAT批处理操作一个文件路径,如何获取盘符、路径、文件名、文件扩展名、文件的大小等功能的实现方法
本文介绍使用BAT批处理操作一个文件路径,如何获取盘符、路径、文件名、文件扩展名、文件的大小等功能的实现方法
1.选项语法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ~I - 删除任何引号("),扩充 %I %~fI - 将 %I 扩充到一个完全合格的路径名 %~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩充到 空字符串 |
2.组合修饰符
1 2 3 4 5 6 | %~dpI - 仅将 %I 扩充到一个驱动器号和路径 %~nxI - 仅将 %I 扩充到一个文件名和扩展名 %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR |
3.获取当前目录的绝对路径: 目录中有空格也可以加入""避免找不到路径
1 2 3 4 5 6 7 8 9 | echo 当前盘符:%~d0 -- C echo 当前盘符和路径:%~dp0 -- C:\Working\docs\ echo 当前批处理全路径:%~f0 -- C:\Working\docs\aaa.bat echo 当前盘符和路径的短文件名格式:%~sdp0 -- C:\Working\docs\ echo 当前CMD默认目录:%cd% -- C:\Working\docsecho 当前盘符:"%~d0" echo 当前盘符和路径:"%~dp0" echo 当前批处理全路径:"%~f0" echo 当前盘符和路径的短文件名格式:"%~sdp0" echo 当前CMD默认目录:"%cd%" |
4.实例
获取文件名
@echo off pushd %1 & for %%i in (.) do set curr=%%~ni echo %curr% pause
此实例是从调用命令传入的第一个参数 %1 中获取文件名。
5.实例2
在一个循环中判断文件的大小
for /f %%i in ('dir /b p00001.ts') do if 0 equ %%~zi (echo %%~zi) else (echo 1)
另外参考:bat批处理实现遍历目录,批量下载功能
字符串的连接是那么简单,例如:
wget -i "%%~dpiurl.txt"
%%~dpi 组合修饰符直接和字符串写在一起就可以了。
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/system/2023-01-15/1669.html