本帖最后由 aloha20200628 于 2022-12-2 11:49 编辑
假设当前目录下有多个一级子目录,名如 2022-09-11,2022-10-28,...
指定一个期限,格式如 2022-09-11,其中前导零不能省略,
则如下代码被运行后,会删除早于或等于 2022-09-11 的全部一级子目录。
备注》dir /b/ad/tc/od 参数中的 tc 表示按目录创建日期排序 改为 tw 则表示按目录最后修改日期排序,od 表示升序 o-d 表示降序,本代码须用 od。
楼主可先用模拟样本试用一下。删除目录还须慎重。
- @echo off
- set/p "qd=指定目录的删除期限(格式如2022-09-01 早于或等于此限均被删除): "
- if not defined qd exit/b
- setlocal enabledelayedexpansion
- for /f "delims=" %%F in ('dir /b/ad/tc/od 20??-??-??') do (
- set "d8=%%~nF"
- if "!d8!" leq "%qd%" (rd /s /q "%%F") else (endlocal &exit/b)
- )
- endlocal &exit/b
复制代码
|