2024年4月28日发(作者:)

dos 批处理命令(forfiles)

Windows Server 2003内置的命令行文件,不适合于XP系统

1. 用批处理文件删除当前目录下 7 天以前的扩展名为bkf文件(以当前系统时间为

基准)

示例: forfiles /m *.bkf /d -7 /c "cmd /c del @file /f"

2. forfiles 自动删除7天前文件 (以当前系统时间为基准)

示例: forfiles /p "d:test" /s /m *.* /d -7 /c "cmd /c del @path"

d:test换成你要的目录路径; /d -7 指删除7天以前文件。

3. 删除所有的空目录(以删除d:test目录下为例) :

dir /ad/b/s d:test |sort /r >d:

For /f "tokens=*" %%i in (d:) DO rd "%%i"

del d:

4. 先删7 天以前文件,再删所有的空目录 ;把以下复制到bat文件中。

@echo off

1

forfiles /p "d:test" /s /m *.* /d -7 /c "cmd /c del @path"

dir /ad/b/s d:test |sort /r >d:

For /f "tokens=*" %%i in (d:) DO rd "%%i"

del d:

5. forfiles 命令的用法及参数:

forfiles /p <目标目录名> /d <天数> /c <执行的命令>

/p 指定了要在哪个目录里查找文件,默认是当前工作目录。

/d 指定一个日期或天数,用于比较文件的最后修改日期是否符合条件。

/c 对每个找到的文件执行的命令。

例1.要把在C盘根目录下最后修改日期大于或等于2010年1月7日的文件复制到D

盘根目录下:

forfiles /p "c:" /d "2007-7-1" /c "cmd /c copy @path d:"

例2.删除在C盘backup目录下最后修改日期在10天前的文件:

forfiles /p "c:backup" /d -10 /c "cmd /c echo deleting @file ... && del /f

2