大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说批处理删除文件(批处理删除指定文件的命令),希望您对编程的造诣更进一步.
在运行Windows的时候,也会出现一些不必要的文件,需要进行定期的删除,避免占用大量的磁盘空间。Windows的forfiles命令犹如Linux的find命令,一行命令就可以删除旧文件及文件夹。
Windows的批处理文件,一般后缀为bat或者cmd,在这里使用bat。
1) forfiles常用变量
在这里文件为C:\Apache\access.log。
变量 | 内容 | 输出结果 |
---|---|---|
@file | 文件名(包括后缀) | access.log |
@fname | 文件名(不包括后缀) | access |
@ext | 后缀 | log |
@path | 文件的完全路径 | C:\Apache\access.log |
@relpath | 文件的相对路径 | .\access.log |
@isdir | 如果是文件夹会返回TRUE(注意是大写),当文件时会返回FALSE。 | – |
@fsize | 文件大小(bytes单位) | 128 |
@fdate | 文件的更新日期 | 2015/12/8 |
@ftime | 文件的更新时间 | 15:50:20 |
forfiles命令其他参数可以使用forfiles /?命令进行查看。
2) 批处理删除文件夹
执行该bat文件的话,会删除D:\Apache\Log_Archives文件夹下面的7天之前的目录,包括目录下的文件。
cleanup.bat
@echo off
:: set folder path
set log_path=D:\Apache\Log_Archives
:: set min age of files and folders to delete
set max_days=7
:: remove sub directories from %log_path%
C:\Windows\System32\forfiles -p %log_path% -d -%max_days% -c “cmd /c IF @isdir == TRUE rd /S /Q @path”
3) 批处理删除文件
删除D:\Apache\Logs文件夹下的7天之前的所有文件。
DelFile.bat
set log_path=D:\Apache\Logs
:: remove files from %log_path%
forfiles -p %log_path% -m *.* -d -%max_days% -c “cmd /c del /q @path”
4) 常见问题
如果出现以下错误时,可以把forfiles命令指定为完全路径(FullPath),C:\Windows\System32\forfiles。
‘forfiles’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
5) 定期执行批处理
1) 依次点击「开始」-> 「管理工具」->「任务计划程序」。
2) 点击「创建基本任务」。
3) 填写任务的名称及描述之后,点击「下一步」。
4) 在这里使用默认的「每天」,并点击「下一步」。
5) 开始日期选择当天(在这里是2015/12/8),时间选择3:00:00(3点执行),每隔1天发生一次。以上设定是每天3天执行该任务。
6) 点击「下一步」。
7) 选择上面的创建的bat文件之后,点击「下一步」。
8) 点击「完成」。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/33644.html