dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章给大家介绍dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。核心代码:@echo off:: by oicu#
千家信息网最后更新 2025年01月18日dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件
这篇文章给大家介绍dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
核心代码:
@echo off:: by oicu#lsxk.org:: 15:17 2011-1-13:: 如果只是删除指定日期或N天前修改的文件,用forfiles即可FORFILES /P "C:\测试目录" /S /M *.log /D -3 /C "cmd /c if @isdir==FALSE echo del @file":: 指定日期(包含)前修改的文件:/D -yyyy/mm/dd:: 以下是流水账:: 使用限制:控制面板里设定日期格式为中文(中国):: 只有dir /tc才能查看到文件创建时间,默认dir都是dir /tw:: 为了取出创建时间,只好用两次for+find,肯定很慢。cd /d 你的目录:: 如果要包含子目录,用for /r . %%a in (*):: 显示文件修改时间for %%a in (*) do echo "%%~ta":: 中文格式时相当于for %%a in (*) do for /f "tokens=1,2* delims= " %%b in ('dir /tw "%%a" ^| find /i "%%~nxa"') do echo "%%b %%c":: 删除某个时间后修改过的文件(这个简单)for %%a in (*) do if "%%~ta" gtr "2008-04-01" echo del "%%a":: 这个才是显示文件创建时间for %%a in (*) do for /f "tokens=1,2* delims= " %%b in ('dir /tc "%%a" ^| find /i "%%~nxa"') do echo "%%b %%c":: 删除某个时间之后创建的文件,如果要删除某个时间之前创建的,更改两:: 处gtr为lss。除了日期外,增加判断时间,可以去掉else段。for %%a in (*) do for /f "tokens=1,2* delims= " %%b in ('dir /tc "%%a" ^| find /i "%%~nxa"') do ( if "%%b" gtr "2010-12-15" ( echo del "%%a" ) else ( if "%%b" equ "2010-12-15" if "%%c" gtr "14:50" echo del "%%a" )):: 用批处理计算时间受到系统的日期格式限制,影响到用set取某一字段的值,:: 批处理计算时间方法过于复杂,要么只用vbs脚本删除文件,要么用批处理:: 配合vbs脚本删除。:: 取10天之前的日期,取回放入变量OldDateecho wscript.echo dateadd("d",-10,date)>GetOldDate.vbsfor /f %%a in ('cscript /nologo GetOldDate.vbs') do set OldDate=%%aecho %OldDate%del GetOldDate._vbs:: VBScript里没有Format函数,Year、Month、Day等函数取数值后也要处理小:: 于10的数字,只能用下面的方法整理日期格式echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbsfor /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do ( set y=%%i set m=%%j set d=%%k)if %m% LSS 10 set m=0%m%if %d% LSS 10 set d=0%d%set OldDate=%y%-%m%-%d%echo %OldDate%del GetOldDate._vbs:: 综合上文,最后得到我们想要的结果:: 删除10天前创建的旧文件(不含子目录)echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbsfor /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do ( set y=%%i set m=%%j set d=%%k)if %m% LSS 10 set m=0%m%if %d% LSS 10 set d=0%d%set OldDate=%y%-%m%-%d%del GetOldDate.vbsfor %%a in (*) do for /f "tokens=1,2* delims= " %%b in ('dir /tc "%%a" ^| find /i "%%~nxa"') do ( if "%%b" lss "%OldDate%" echo del "%%a"):: 删除10天前修改的旧文件(不含子目录)echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbsfor /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do ( set y=%%i set m=%%j set d=%%k)if %m% LSS 10 set m=0%m%if %d% LSS 10 set d=0%d%set OldDate=%y%-%m%-%d%del GetOldDate.vbsfor %%a in (*) do if "%%~ta" lss "%OldDate%" echo del "%%a":: 本文全部用echo del代替del,只是显示要删除的文件,并不实际删除。pausegoto :eof
关于dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文件
时间
日期
格式
子目
子目录
内容
函数
只是
方法
更多
目录
脚本
要么
中文
帮助
限制
不错
复杂
上文
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术总监林坤翼
浙江gps网络时钟服务器搭建
爱奇艺账号数据库
数据库关联性建立
长三角软件开发者大会
信息网络安全专业好就业吗
杭州戴尔服务器型号参数
通州区网络技术信息推荐
网络安全法所称的网络数据
网络安全知识课件观后感
魔兽世界 服务器人数
远程的服务器资源管理器关闭
app软件开发诸天万界
上海访客管理软件开发价格
网络安全保卫工作心得
mfc怎么用到数据库
学数据库需要哪儿些知识
web数据库期末考试题
阿里云rds数据库访问好慢
阿里云云服务器安全防护
医疗软件开发周期文档
服务器电机怎么选择
网络安全中的科学计算
java显示数据库
服务器怎么存储图片
上海访客管理软件开发价格
软件开发太压抑了
his数据库考试题
有关于网络安全的股票
荣耀打开华为云盘服务器异常