dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章给大家介绍dos中如何用批处理删除N天前或指定日期时间内创建以及修改的文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。核心代码:@echo off:: by oicu#
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
网络安全班会教案高中
小型软件开发性价比高
福州恒翔网络技术有限公司介绍
赛迪恒业网络技术有限公司
适合网络安全的歌
linux连接oracle数据库
网络安全奖项名称
长沙医疗软件开发
mc服务器如何传送别人
现在免费的pubg在哪个服务器
假期网络安全资料
南京当临互联网科技有限公司
软件开发私活难沟通
ps软件开发了多久
软件开发三个时期八个阶段
ipc安全接入管理服务器价格
关于军营网络安全的文章
隐藏网络安全吗
数据库关系运算符号的由来
气象局网络安全方案
关于网络安全整改的报告
用友服务器本地安全策略
c 通用数据库连接类
邢台网络技术怎么样
从江网络安全讲座
地铁逃生哪个服务器的人少
计算机网络安全ppt课件
软件开发人员绩效考核表填写
苏州软件开发C 招聘
智慧芽数据库每年多少钱