联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Originally posted by willsort at 2005-8-25 11:36: Re songyujob: 请告知你使用的Windows的版本。另外,请说明N天以前是特指的某些日期,还是通指的前N天?
Originally posted by Climbing at 2005-8-25 12:06: 我反问楼主一下,知道如何提问吗? 我的签名中有答案。
:: DateDel.bat - 演示删除7日前(含第7日前)修改的文件 :: Will Sort - 2005-8-26 - CMD@WinXP :: Note: 不要将此批处理文件置于需要选择删除文件的目录中 :: 程序只是进行了删除演示,若演示无误,删除del前面的echo即可正常执行 :: 如果首次执行的日期不是2005-8-26,则需调整第四行代码中的保留日期列表 :: 程序需要每日运行至少一次,以便自动更新日期列表 @echo off if "%1"==":" goto %2 if exist %temp%.\_DateDel.bat %temp%.\_DateDel.bat %0 : Update 2005-08-20 2005-08-21 2005-08-22 2005-08-23 2005-08-24 2005-08-25 2005-08-26 :Update setlocal EnableExtensions set today=%date:~0,10% if not "%today%"=="%9" %0 : Update %4 %5 %6 %7 %8 %9 %today% echo %0 : Update %3 %4 %5 %6 %7 %8 %9 >%temp%.\_DateDel.bat :Delete for /r %%f in (*.*) do if "%%~tf" LEQ "%3" echo del "%%f" :End
:: DelOldFile.cmd - 演示删除指定日期前的所有文件 :: Climbing - 2005-8-26 - CMD@WinXP @echo off if "%1"=="" goto _usage set dst=.\. if not "%2"=="" if exist %2\. (set dst=%2\.) else (goto _err1) for /f "tokens=*" %%f in ('dir /b/s %dst%') do if %%~tf LSS %1 del /f /q %%f && echo 删除 %%f goto _quit :_usage echo DelOldFile.cmd - 删除指定目录指定日期以前的所有文件 echo Version 1.0 Copyleft by Climbing echo 语法: DelOldFile ^<日期^> [目标目录] echo ^<日期^> 必须指定的参数,日期格式为:%date%,该日期前的文件都会被删除(不含该日期) echo [目标目录] 可选参数,指定要删除文件的目录,默认为当前目录 goto _quit :_err1 echo 错误:指定的%2目录不存在! :_quit set dst= :End
for /r %dst% %%f in (*.*) do if %%~tf LSS %1 del /f /q %%f && echo 删除 %%f
Originally posted by Climbing at 2005-8-25 17:38: for /f "tokens=*" %f in ('dir /b/s') do @if %~tf LSS 2005-08-17 echo %~tf %f