操作系统您现在的位置是:首页 > 博客日志 > 操作系统

BAT批处理操作文件路径的选项语法和组合修饰符

<a href='mailto:'>微wx笑</a>的头像微wx笑 2023-01-15操作系统 0 0关键字: bat  批处理  

本文介绍使用BAT批处理操作一个文件路径,如何获取盘符、路径、文件名、文件扩展名、文件的大小等功能的实现方法

本文介绍使用BAT批处理操作一个文件路径,如何获取盘符、路径、文件名、文件扩展名、文件的大小等功能的实现方法E8w无知

1.选项语法E8w无知


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.组合修饰符E8w无知

1
2
3
4
5
6
     %~dpI       - 仅将 %I 扩充到一个驱动器号和路径
     %~nxI       - 仅将 %I 扩充到一个文件名和扩展名
     %~fsI       - 仅将 %I 扩充到一个带有短名的完整路径名
     %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
                   到找到的第一个驱动器号和路径。 
     %~ftzaI     - 将 %I 扩充到类似输出线路的 DIR

 3.获取当前目录的绝对路径:  目录中有空格也可以加入""避免找不到路径E8w无知


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.实例E8w无知

获取文件名E8w无知

@echo off
pushd %1 & for %%i in (.) do set curr=%%~ni
echo %curr%
pause

此实例是从调用命令传入的第一个参数 %1 中获取文件名。E8w无知

5.实例2E8w无知

在一个循环中判断文件的大小E8w无知

for /f %%i in ('dir /b p00001.ts') do if 0 equ %%~zi (echo %%~zi) else (echo 1)

另外参考:bat批处理实现遍历目录,批量下载功能E8w无知

字符串的连接是那么简单,例如:E8w无知

wget -i "%%~dpiurl.txt"

%%~dpi 组合修饰符直接和字符串写在一起就可以了。E8w无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.com/blog/system/2023-01-15/1669.html

很赞哦! () 有话说 ()