bat删除过期文件(FORFILES)
关键词:bat删除过期文件,bat,FORFILES
原文:https://blog.csdn.net/sandy9919/article/details/82932460
--最佳实践 :: IIS日志文件目录
set log_dir="C:\inetpub\logs\LogFiles" :: 保留日志天数
set bak_dat=15 :: 删除日志文件
forfiles /p %log_dir% /S /M *.log /D -%bak_dat% /C "cmd /c echo 正在删除@relpath 文件… & echo. & del @file" ————————------------------------------------------------------------------------------------
【另附一条实用命令】Windows下bat批处理,自动获取文件的最后修改时间,然后将指定多少天之前的文件删除,需要Windows支持forfiles命令,XP及以上系统都自带forfiles命令。
删除指定目录下7天前的文件(目录为C:\test):
forfiles /p "c:\test" /s /m *.* /d -7 /c "cmd /c del @path"
删除批处理文件当前目录下7天前的文件:
forfiles /p %~dp0 /s /m *.* /d -7 /c "cmd /c del @path"
将以上其中一行复制,新建文本文件,粘贴并保存为bat格式,定期运行或者加入计划任务。
显示当前目录下七天以前的文件路径
forfiles /p %cd% /s /m *.* /d -7 /c "cmd /c echo @path"
遍历
#所有文件,包括子目录下的文件 @echo off
cd %~dp0
for /R %%s in (.,*) do (
echo %%s
) #txt文件 @echo off
cd %~dp0
for /R %%s in (*.txt) do (
echo %%s
) #遍历当前目录的子目录(第一层) @echo off
cd %~dp0
for /D %%s in (*) do (
echo %%s
) #遍历当前目录下的dir的子目录(第一层,仅目录名) @echo off
cd %~dp0
for /D %%s in (dir\*) do (
echo %%s
) #遍历当前目录下的dir的子目录(第一层,完全目录名,加上/R) @echo off
cd %~dp0
for /D /R %%s in (dir\*) do (
echo %%s
) #遍历时,如果需要遍历子目录的话,就加上/R 并使用*参数,如下 @echo off
cd %~dp0
for /D /R %%s in (*) do (
echo %%s
)
FORFILES
forfiles是一款windows平台的软件工具,其中选择文件并运行一个命令来操作文件。文件选择标准包括名称和上次修改日期。命令说明符支持一些特殊的语法选项。它可以直接在命令行中使用,也可以在批处理文件或其他脚本中使用。
该forfiles命令最初作为加载项提供在Windows NT 资源工具包中。它成为Windows Vista的标准实用程序,作为新管理功能的一部分。
用法
forfiles命令有几个命令行选项。如果没有给出选项或参数,它将输出当前目录中每个文件的名称。
开关 论据 含义
/ P 路径 用于搜索文件的目录(文件夹)。默认为当前目录。 不接受UNC路径(\\ machine \ share)。
/ M 搜索掩码 一个glob模式(通配符搜索)。仅选择文件名与模式匹配的文件。文件扩展名包含在文件名中; 不是路径(文件夹名称)。模式必须与整个名称匹配,或使用通配符。默认设置是匹配所有文件。
此选项把glob模式*.*和*不同。前者仅匹配名称中带有点的文件,而后者甚至匹配没有点或扩展名的文件。即使给定*.*模式,大多数DOS / Windows命令也会匹配没有扩展名的文件。
/ S (没有) 选择子目录中的匹配文件。默认情况下,仅搜索单个指定目录。
/C 命令 为每个匹配的文件执行给定的命令。命令字符串通常需要用双引号括起来。请参阅下面的命令字符串中的语法。默认命令是CMD /C ECHO @FILE,导致输出(显示)每个匹配文件的名称。
/ d 日期 根据上次修改日期选择文件。请参阅下面的日期语法。默认情况下,无论日期如何,都会选择文件。
/? (没有) 显示帮助消息(简要使用说明)。禁止文件搜索/命令执行。不得与任何其他开关一起使用。
命令语法
除非如下所述,否则命令字符串按给定的方式执行。
形式的序列0xFF,其中“0x”是文字,“FF”表示任何两位十六进制数,用相应的单字节值替换。这可用于嵌入非打印ASCII字符或扩展ASCII字符。
提供了几个变量,在命令中用作来自每个文件的值的占位符。从技术上讲,变量不是必需的,但如果每个文件的命令都不同,则必须使用变量。
变量 含义
@file 匹配项的名称,双引号。
@fname 匹配项的基名(没有文件扩展名),双引号。
@ext 文件扩展名,双引号,没有前导点。如果文件有多个扩展名,则只返回最后一个。如果文件没有扩展名,则返回带引号的空字符串。
@path 匹配项的完整路径,双引号,包括驱动器号和文件扩展名(如果有)。
@relpath 匹配项的路径,双引号和相对于起始目录(由/ P给出)。每个路径以点和反斜杠(.\)开头。
@isdir TRUE如果匹配项是目录,FALSE则计算文字字符串,否则。
@fsize 匹配项的大小,以字节为单位。目录报告大小为零。
@fdate 上次修改文件的日期,采用当前用户的本地化日期格式。
@ftime 上次修改文件的时间,采用当前用户的本地化时间格式。
日期语法
在给定日期参数的情况下,日期开关(/ D)根据上次修改日期选择文件。
date参数可以作为文字日期给出,格式为MM / DD / YYYY(不接受其他日期格式)。可替代地,日期参数可以被给定为一个数字,在这种情况下,它被认为是指在日龄时(即,天日期当前日期的前几天)。
如果date参数以减号( - )开头,则仅选择在给定日期或之前修改的文件(较旧的文件/先前修改过)。否则,仅选择在给定日期或之后修改的文件(较年轻的文件/稍后修改)。可以给出显式加号(+),但这是默认值。请注意,两种模式都在给定日期选择文件。无法仅在给定日期选择文件(也不在之前或之后)。
示例
要列出驱动器 C: 上的所有批处理文件,请键入:
forfiles /p "c:/" /s /m *.bat /c "cmd /c echo @file is a batch file"
要列出驱动器 C: 上的所有目录,请键入:
forfiles /p "c:/" /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"
要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:
forfiles /p "c:/" /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"
要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:
forfiles /p "c:/" /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"
要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:
forfiles /p "c:/" /s /m *.* /c "cmd /c echo extension of @file is 0x09@ext0x09" With:
要列出驱动器 C: 上的所有批处理文件,请键入:
forfiles /p "c:/" /s /m *.bat /c "cmd /c echo @file is a batch file"
要列出驱动器 C: 上的所有目录,请键入:
forfiles /p c:/ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"
要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:
forfiles /p c:/ /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"
要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:
forfiles /p c:/ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"
要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:
forfiles /p c:/ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09"
删除D:\db_bak目录下20天之前的rar文件,请键入:
forfiles /p "D:\ufbak\db_bak" /s /m *.rar /d -20 /c "cmd /c del @path"
---------------------
作者:吥輕誩放棄
来源:CSDN
原文:https://blog.csdn.net/sandy9919/article/details/82932460
版权声明:本文为博主原创文章,转载请附上博文链接!
bat删除过期文件(FORFILES)的更多相关文章
- windows下自动删除过期文件的脚本
windows下自动删除过期文件的脚本 前言: 比如日志文件每天都产生,时间长了就会有很大的一堆垃圾.整理一下 定时删除文件的方法. 正文: Windows: 定时删除tomcat日志和缓存.可以保留 ...
- Windows -- 使用批处理文件.bat删除旧文件
Windows -- 写一个批处理文件.bat删除旧文件 1. 批处理文件 del_old_file.bat rem 删除D:\temp目录下7天前的文件 Forfiles /p D:\temp ...
- int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件
int.TryParse非预期执行引发的思考 问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Reque ...
- Windows下使用批处理文件.bat删除旧文件
本文教大家写一个批处理文件.bat删除旧文件,供大家参考,具体内容如下 1. 批处理文件 del_old_file.bat rem 删除D:\temp目录下7天前的文件Forfiles /p E:\b ...
- SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)
数据库同时备份到两台服务器上(并自动删除过期文件) 举例 :(本地)服务器A: IP :192.168.1.1 (远程)服务器B: IP :192.168.1.2 数据库版本:SqlServer200 ...
- crontab定时任务打包备份文件并删除过期文件
Crontab 示例,最后这里要写成shell脚本定时运行 30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out ...
- forfiles命令批处理删除过期文件
命令格式: forfiles.exe /p "D:\备份" /s /m *.zip /d -7 /c "cmd /c del @path" /p:指定目录 /s ...
- forfiles删除过期文件robocopy
forfiles /p "F:\SDSC16B" /s /m *.bak /d -20 /c "cmd /c del @FILE" /p:指定目录 /s:递归搜 ...
- 用bat 删除当前文件夹下的某类文件
@echo on for /r %%f in (*.pdb,*.xml) do del %%f 保存为bat文件执行!
随机推荐
- Xcode6:模拟器消失了?
今天打开Xcode,选择模拟器时发现只剩下了“iPhone 5”和“iPhone 5s”,原来什么“iPad Air”,“iPhone 4s”的都哪里去了?丢了? 别着急,依次打开“Xcode-> ...
- ThinkingInJava 学习 之 0000006 复用类
1. 组合语法 将对象引用置于新类中. 2. 继承语法 衍生类自动获得基类中所有的域和方法 super关键字表示基类. 1. 初始化基类 当创建一个衍生类的对象时,该对象创建一个基类的子对象并包含子对 ...
- Mybatis 的 xml 文件语法错误,启动项目时控制台一直循环解析但是不打印错误
重写SqlSessionFactoryBean的buildSqlSessionFactory方法: eg: package com.slp; import java.io.IOException; i ...
- javaweb学习之建立简单网站
看到很多网站,论坛等,很实用,想做一个,比如中国图书网,它们的共同特点是运行在浏览器中. 最简单可行的技术就是jsp实现,但是jsp虽然可以在服务器端显示,在客户端连接数据库,且客户端和服务器端要完成 ...
- Spring实战系列
作者:arccosxy 转载请注明出处:http://www.cnblogs.com/arccosxy/ 稀里糊涂的做了2年的Java Web后端开发,很多东西连蒙带猜外加百度,也算是完成了几个重要 ...
- poj3080 Blue Jeans【KMP】【暴力】
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions:21746 Accepted: 9653 Descri ...
- 质量团队在VUCA时代如何走?
如今,VUCA时代已到来.在VUCA时代(易变性volatility.不确定性uncertainty.复杂性complexity.模糊性ambiguity),面对外部环境的复杂和不确定性,测试圈是否已 ...
- .NET Core开发日志——HttpClientFactory
当需要向某特定URL地址发送HTTP请求并得到相应响应时,通常会用到HttpClient类.该类包含了众多有用的方法,可以满足绝大多数的需求.但是如果对其使用不当时,可能会出现意想不到的事情. 博客园 ...
- flannel
Docker跨主机容器间网络通信实现的工具有Pipework.Flannel.Weave.Open vSwitch(虚拟交换机).Calico实现跨主机容器间的通信.其中Pipework.Weave. ...
- 关于ionic如何到最新版本
首先删除 我叫他它叫做依赖node_modules 文件夹然后修改 修改依赖版本package.json 各个文件的版本号接着下载 下载最新的依赖 会根据package.json 各个文件的版本号添加 ...