云浮中国转运服务网

dos批处理命令forfiles使用参数详解

2026-04-05 17:13:02 浏览次数:2
详细信息

forfiles 命令详解(DOS批处理)

forfiles 是 Windows 命令行工具,用于批量选择文件并执行命令。通常用于文件管理、批量删除、备份等操作。

1. 基本语法

forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -]日期]

2. 主要参数说明

参数 说明
/P pathname 指定搜索的起始目录(默认为当前目录)
/M searchmask 文件匹配模式(支持通配符 和 ?),默认为 .*
/S 递归搜索子目录
/C command 对每个文件执行的命令(用双引号包裹)
/D [+/-]日期 按日期筛选文件(+:之后,-:之前,无符号:当天)

3. /C command 中的变量

/C 参数中可使用以下变量(区分大小写):

变量 说明
@file 文件名(含扩展名)
@fname 文件名(不含扩展名)
@ext 文件扩展名
@path 完整路径
@relpath 相对路径
@isdir 是否为目录(TRUE/FALSE)
@fsize 文件大小(字节)
@fdate 文件最后修改日期
@ftime 文件最后修改时间

4. 常用示例

① 列出当前目录所有文件
forfiles /C "cmd /c echo @file"
② 递归删除 30 天前的 .log 文件
forfiles /P C:\Logs /S /M *.log /D -30 /C "cmd /c del @path"
③ 备份 7 天内的 .txt 文件到备份目录
forfiles /P D:\Data /M *.txt /D -7 /C "cmd /c copy @path E:\Backup"
④ 显示文件详细信息
forfiles /C "cmd /c echo 文件名:@file 大小:@fsize 修改时间:@fdate @ftime"
⑤ 仅处理目录
forfiles /C "cmd /c if @isdir==TRUE echo 目录:@file"

5. 日期格式说明

/D 参数支持以下格式:

6. 注意事项

管理员权限:操作系统文件可能需要管理员权限 路径含空格:用双引号包裹路径(如 "C:\Program Files"危险操作:先使用 echo 测试,再执行删除/移动命令 时间范围/D +30 表示 30 天后,/D -30 表示 30 天前

7. 完整示例模板

@echo off
chcp 65001 >nul
forfiles /P "D:\项目" /M *.tmp /S /D -90 /C "cmd /c echo 正在删除:@path && del @path"
echo 清理完成!
pause

8. 替代方案(PowerShell)

如果系统支持,PowerShell 更灵活:

Get-ChildItem -Path "C:\Logs" -Filter *.log -Recurse | Where LastWriteTime -LT (Get-Date).AddDays(-30) | Remove-Item

掌握 forfiles 可轻松实现自动化文件管理,建议在测试环境中充分验证后再用于生产环境。

相关推荐