删除指定某一天之前的所有文件

::****************************

::删除某一天之前创建的所有文件
::****************************

::输入要删除的年月日
@echo off
set /p iyear="请输入指定的年:"
set /p imonth="请输入指定的月:"
set /p iday="请输入指定的日:"

echo %iyear% %imonth% %iday%
::判断输入的合法性
if %imonth% gtr 12 if %imonth% lss 1 (
    echo "月输入不合法!"
    exit
)
::简单判断日期输入是否合法,不根据月来计算
if %iday% gtr 31 if %iday% lss 1 (
    echo "日输入不合法!"
    exit
)
setlocal enabledelayedexpansion
::提取文件日期并作出判断,ELSE 子句必须在 IF 之后出现在同一行上
for /f "usebackq tokens=*" %%i in (`dir /a-d/b/oe`) do (
    set date_str=%%~ti
    echo !date_str!
    set fyear=!date_str:~0,4!
    set fmonth=!date_str:~5,2!
    set fday=!date_str:~8,2!
    echo !fyear! !fmonth! !fday!
    if !fyear! lss !iyear! (
        del %%i
        echo "delete one"
    ) else (
        echo "medelete excuted"
        if !fyear! equ !iyear! if !fmonth! lss !imonth! (
            del %%i
            echo "delete two"
        ) else (
            if !fyear! equ !iyear! if !fmonth! equ !imonth! if !fday! lss !iday! (
                del %%i
                echo "delete three"
            )
        )
    )

)

心得:写if else嵌套的时候要注意空格,本来准备用goto进行替代,但goto会终止for循环,这个得注意。

网上说用call替代,感觉也不给力~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值