moneyslow.com

利用forfiles命令删除Windows的旧文件

在运行Windows的时候,也会出现一些不必要的文件,需要进行定期的删除,避免占用大量的磁盘空间。Windowsforfiles命令犹如Linuxfind命令,一行命令就可以删除旧文件及文件夹。

Windows的批处理文件,一般后缀为bat或者cmd,在这里使用bat

1) forfiles常用变量

在这里文件为C:Apacheaccess.log

变量

内容

输出结果

@file

文件名(包括后缀)

access.log

@fname

文件名(不包括后缀)

access

@ext

后缀

log

@path

文件的完全路径

C:Apacheaccess.log

@relpath

文件的相对路径

.access.log

@isdir

如果是文件夹会返回TRUE(注意是大写),当文件时会返回FALSE

@fsize

文件大小(bytes单位)

128

@fdate

文件的更新日期

2015/12/8

@ftime

文件的更新时间

15:50:20

forfiles命令其他参数可以使用forfiles /?命令进行查看。

2) 批处理删除文件夹

执行该bat文件的话,会删除D:ApacheLog_Archives文件夹下面的7天之前的目录,包括目录下的文件。

cleanup.bat

@echo off

:: set folder path

set log_path=D:ApacheLog_Archives

:: set min age of files and folders to delete

set max_days=7

:: remove sub directories from %log_path%

C:WindowsSystem32forfiles -p %log_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path"

3) 批处理删除文件

删除D:ApacheLogs文件夹下的7天之前的所有文件。

DelFile.bat

set log_path=D:ApacheLogs

:: remove files from %log_path%

forfiles -p %log_path% -m *.* -d -%max_days% -c "cmd /c del /q @path"

4) 常见问题

如果出现以下错误时,可以把forfiles命令指定为完全路径(FullPath),C:WindowsSystem32forfiles

'forfiles' 不是内部或外部命令,也不是可运行的程序或批处理文件。

5) 定期执行批处理

1) 依次点击「开始」-> 「管理工具」->「任务计划程序」。


2) 点击「创建基本任务」。


3) 填写任务的名称及描述之后,点击「下一步」。


4) 在这里使用默认的「每天」,并点击「下一步」。


5) 开始日期选择当天(在这里是2015/12/8),时间选择3:00:00(3点执行),每隔1天发生一次。以上设定是每天3天执行该任务。


6) 点击「下一步」。


7) 选择上面的创建的bat文件之后,点击「下一步」。


8) 点击「完成」。

Exit mobile version