windows – 用于删除超过X天的文件的批处理脚本(基于创建日期,而
发布时间:2020-12-14 04:38:13 所属栏目:Windows 来源:网络整理
导读:在 Windows机器上(win 7或Win server 2008 R2),我有一个批处理脚本,可以将一些.config文件复制到备份文件夹中.我想编写另一个脚本来删除一周前创建的备份文件. 有很多关于如何使用FORFILES的建议(例如): FORFILES /P "D:Configs_Backup" /M *.config /D -7
在
Windows机器上(win 7或Win server 2008 R2),我有一个批处理脚本,可以将一些.config文件复制到备份文件夹中.我想编写另一个脚本来删除一周前创建的备份文件.
有很多关于如何使用FORFILES的建议(例如): FORFILES /P "D:Configs_Backup" /M *.config /D -7 /C "cmd /c del @file" 但是这个命令使用“修改”的时间戳,而我需要使用创建日期. 无需安装任何第三方程序,是否可以通过命令控制台实现此目的? 解决方法
尝试这个,查看输出并删除回声,如果看起来不错:
@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION SET /a XDay=7 CALL :DateToJDN "%DATE%" JDNToday FOR /r "D:Configs_Backup" %%a IN (*.config) DO ( FOR /f "tokens=1,4*" %%b IN ('dir /tc "%%~a"^|findstr "^[0-9]"') DO ( CALL :DateToJDN "%%b" filedate SET /a diffdays=JDNToday-filedate IF !diffdays! gtr %XDay% ECHO DEL /F /Q "%%~a" ) ) GOTO :eof :DateToJDN "DD mm/dd/yyyy" jdn= setlocal set date=%~1 set /A yy=%date:~-4%,mm=1%date:~-10,2% %% 100,dd=1%date:~-7,2% %% 100 set /A a=mm-14,jdn=(1461*(yy+4800+a/12))/4+(367*(mm-2-12*(a/12)))/12-(3*((yy+4900+a/12)/100))/4+dd-32075 endlocal & set %2=%jdn% exit /B 注意:这仅适用于AM / PM时间格式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 如何配置Open Live Writer程序以便更好的为博客服
- winforms – Windows窗体中WebBrowser控件的浏览
- opengl – 调用glGetTexImage时出错(atioglxx.dl
- 如何在Windows上安装和使用cli53工具?
- 有没有理由使用Windows Server 2003而不是Server
- windows – 如何在构建boost之后列出失败的目标?
- windows server2008 IIS下目录 [ application/da
- windows – 使用托管服务帐户运行命令?
- 如何发送关闭命令通过Windows上的CMD提示进行处理
- .net – Windbg期待mscordacwks.dll的不同版本
热点阅读