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

来源:互联网 发布:淘宝卖正品香水的店铺 编辑:程序博客网 时间:2024/06/02 02:30

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

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

::输入要删除的年月日
@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
原创粉丝点击