中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理:删除当前文件夹中最旧文件
作者:
标题: 批处理:删除当前文件夹中最旧文件 上一主题 | 下一主题
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『楼 主』:  批处理:删除当前文件夹中最旧文件

To All:
    这原本是应网友之托而写的一个小程序,只是后来发现原程序在NT环境下无法正常使用,由此引发了NT和9x命令行兼容性的学习。其中,文件的遍历是最早进行的,而此代码其实也是文件遍历的的一种变形, 所以在更新了文件遍历代码 Visit.bat 之后,顺便将它也更新了。
:: DelOld.Bat - 删除当前文件夹中最早被修改的一个文件
:: Will Sort - 2004/06/26
:: 2004/11/13 Updated
@echo off
if [%1]==[$] 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 [%OS%]==[Windows_NT] chcp 936>nul
if not exist ~DelOld.pre %0 $ Error Can't make prefix file.

:: 设置变量 %File% 为最旧文件并将其所指的文件之删除(不会删除自身)
:: 若想删除目录,可将1句中的 /a-d 改为 /ad,4句中的del 改为deltree /y
:DelAnOld
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:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2004-11-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
autoit
系统支持




积分 904
发帖 339
注册 2002-10-10
来自 厦门
状态 离线
『第 2 楼』:  

收藏!



joomla! Autoit!
2004-11-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: