forfiles
- 一、结果输出格式
- 二、按时间搜索
- 三、搜索指定类型文件
- 四、批量删除文件
forfiles是Windows自带的命令,常用来搜索文件。
参数
- /p path 指定搜索的路径(默认当前路径)
- /s 递归查询(默认只查询一层目录)
- /c commend 指定命令(默认
/c echo @file
) - /d date 指定日期(默认
+
) - /m 模糊匹配(默认是
*
)
不加参数,默认显示当前目录中所有文件名。
一、结果输出格式
/c 参数可以指定结果的展示字段,固定格式:/c "cmd /c echo 变量名"
1)树池文件的完整路径
forfiles /c "cmd /c echo @path"
2)输出文件的文件名和扩展名,想同时显示两个字段,用空格间隔即可。
forfiles /c "cmd /c echo @file @ext"
/c 参数支持的变量名还有:
- @file 返回文件名
- @fname 返回不带扩展名的文件名
- @ext 只返回文件的扩展名
- @path 返回文件的完整路径
- @relpath 返回文件的相对路径
- @isdir 判断文件类型是否为目录,返回TRUE/FALSE
- @fsize 返回文件大小(字节)
- @fdate 返回文件上一次修改日期
- @ftime 返回文件上一次修改时间
3)除了变量,/c 参数还支持输出自定义描述信息,比如:
forfiles /c "cmd /c echo @file 自定义文字"
二、按时间搜索
/d 参数可以按照指定时间搜索文件,+
表示之后,-
表示之前。
/d 参数支持两种时间搜索格式:
- yyyy/MM/dd 指定日期
- dd 指定天数(0-32768范围内)
1)搜索2023年4月30日之后修改过的文件
forfiles /s /d 2023/4/30
2)搜索当前目录下,一天之前修改过的文件。
forfiles /d -1
3)递归搜索D盘中,2023年4月30日之后修改过的文件,并输出文件修改时间和文件路径。
forfiles /s /p d:\ /d 2023/4/30 /c "cmd /c echo @fdate @ftime @path"
三、搜索指定类型文件
/m 参数可以模糊匹配文件名,常用来搜索指定类型的文件。
1)查找text类型的文件。
forfiles /m *.txt
2)查找以 file
开头的文件
forfiles /m file*
四、批量删除文件
/c 参数还可以用来删除文件,固定格式 /c "cmd /c del /q @file"
1)删除当前目录下的所有文件
forfiles /c "cmd /c del /q @file"
2)删除30天前的过期文件,常用于ftp服务器等场景。
forfiles /p "d:\" /d -30 /c "cmd /c del /q @file"