服务器批处理清除几天前文件提示是否清除,怎么用批处理命令删除几天前的目录、子目录和里面的所有文件?...

博主在批处理脚本DateDel2_for_2k3.bat中遇到一个问题,该脚本用于删除指定目录下几天前的文件。尽管文件已成功删除,但空子目录未被删除。博主尝试在脚本中增加删除子目录的语句,但执行后发现空子目录仍然存在。同时,博主询问此脚本是否适用于Windows Server 2008 R2。
摘要由CSDN通过智能技术生成

我在一个批处理文件DateDel2_for_2k3.bat中这样删除指定目录的几天前的所有文件:

:: DateDel2.bat - 删除指定路径下指定日数以前修改的文件

:: Will Sort - 2005-9-2 - CMD@WinXP

:: 注意事项:参数%1指定日数,昨天为1,前天为2,依次类推

::           参数%2指定文件路径,省略时将处理当前路径

:: 核心算法:Ritchie Lawrence, updated 2002-08-13. Version 1.1

::

@echo off & setlocal ENABLEEXTENSIONS

call :Date2Day %date:~0,10% sdays

set /a sdays-=%1

call :Day2Date %sdays% difdate

echo 将删除 %cd% 下 %difdate% 前的修改的以下文件:

for /r %2 %%f in (*.*) do if "%%~tf" LEQ "%difdate%" del /f /q %%f && echo 删除 %%f

goto :EOF

:Date2Day

setlocal ENABLEEXTENSIONS

for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (

set yy=%%a & set mm=%%b & set dd=%%c

)

set /a dd=100%dd%%%100,mm=100%mm%%%100

set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2

set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

endlocal&set %2=%j%&goto :EOF

:Day2Date

setlocal ENABLEEXTENSIONS

set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a

set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5

set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10

(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)

endlocal&set %2=%yy%-%mm%-%dd%&goto :EOF

我是这样调用这个批处理文件的:DateDel2_for_2k3.bat 3 e:\abc

这没问题。

现在我想把这个目录下几天前的目录、子目录也全删了,于是我在这条语句:for /r %2 %%f in (*.*) do if "%%~tf" LEQ "%difdate%" del /f /q %%f && echo 删除 %%f

的下面增加了这条语句:for /r %2 %%f in (*.*) do if "%%~tf" LEQ "%difdate%" rmdir /s /q %%f && echo 删除 %%f

奇怪的是文件全删掉了(包括子目录里的),剩下一些空的子目录却没删掉,这是为什么呢?

还有这个批处理文件适用于windows server 2008 r2吗?

请指教!

Jeck Q

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值