中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 23:09
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理:删除当前文件夹中最旧文件
楼 主 批处理:删除当前文件夹中最旧文件 发表于 2004-11-14 00:00 ·  中国 山西 运城 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
To All:
这原本是应网友之托而写的一个小程序,只是后来发现原程序在NT环境下无法正常使用,由此引发了NT和9x命令行兼容性的学习。其中,文件的遍历是最早进行的,而此代码其实也是文件遍历的的一种变形, 所以在更新了文件遍历代码 Visit.bat 之后,顺便将它也更新了。
:: DelOld.Bat - 删除当前文件夹中最早被修改的一个文件
:: Will Sort - 2004/06/26
:: 2004/11/13 Updated
@echo off
if == goto %2

:: 创建并执行一个DEBUG脚本,以生成一个设置变量 %File% 的前缀文件
:MakeScr
echo e 100 'set File='> ~DelOld.asd
for %%s in (rcx 9 n~DelOld.pre w q) do echo %%s>> ~DelOld.asd
debug < ~DelOld.asd > nul
if == chcp 936>nul
if not exist ~DelOld.pre %0 $ Error Can't make prefix file.

:: 设置变量 %File% 为最旧文件并将其所指的文件之删除(不会删除自身)
:: 若想删除目录,可将1句中的 /a-d 改为 /ad,4句中的del 改为deltree /y
elAnOld
dir %1 /a-d /od /b | find "DelOld" /v /i >> ~DelOld.pre
find "set File=" < ~DelOld.pre > ~DelOld.bat
call ~DelOld.bat
if not "%File%"=="" del "%File%"

:: 清理生成的临时文件
:Clear
for %%f in (~DelOld*.*) do del %%f
set File=
goto end

:: 错误处理
:Error
shift
shift
echo.
echo Error: %1 %2 %3 %4 %5 %6 %7 %8 %9
echo.
goto end

:end


[ Last edited by willsort on 2005-8-26 at 18:57 ]
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2 发表于 2004-11-14 00:00 ·  中国 福建 厦门 电信
系统支持
★★★
积分 904
发帖 339
注册 2002-10-10 00:00
UID 1904
来自 厦门
状态 离线
收藏!
论坛跳转: