批命令删除三天前创建的文件

批处理命令

@echo off
SET TT=1
set p1=%date:~0,4%
set p2=%date:~5,2%
set p3=%date:~8,2%
setlocal enabledelayedexpansion
for /l %%a in (1,1,3) do (
for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i
)
if %p3% gtr %TT%  goto ppp
:nxt
set/a p2-=1
if %p2% equ 0 set/a p1-=1&&set p2=12
SET/a PN1=%p1%%%4
set PN2=28
if %PN1% EQU 0 set pN2=29
for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i
if %p3% leq %tt% goto nxt
:ppp
set/a p3=%p3%-%tt%
set p2=0%p2%
set p2=%p2:~-2,2%
set p3=0%p3%
set p3=%p3:~-2,2%
for /r "f:/" %%i in (*.*) do set t=%%~ti &&call :loop "%%~fi"
pause
goto :eof
:loop
if not "%~1" == "%~f0" (
IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% del %1
)

 

windows2003系统可以调用一个默认文件 c:/WINDOWS/system32/forfiles.exe来处理。

C:/test>forfiles /?

FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

如下:

forfiles /P C:/test /D -3 /C "cmd /c del @file"

 

其它:

 FORFILES /?
 FORFILES
 FORFILES /P C:/WINDOWS /S /M DNS*.*
 FORFILES /S /M *.txt /C "cmd /c type @file | more"
 FORFILES /P C:/ /S /M *.bat
 FORFILES /D -30 /M *.exe
          /C "cmd /c echo @path 0x09 在 30 前就被更改。"
 FORFILES /D 2001-01-01
          /C "cmd /c echo @fname 在 2001年1月1日就是新的。"
 FORFILES /D +2010-6-29 /C "cmd /c echo @fname 今天是新的。"
 FORFILES /M *.exe /D +1
 FORFILES /S /M *.doc /C "cmd /c echo @fsize"
 FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值