![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 14:41 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » (已结)定时清理磁盘的批处理中的空间判断 |
| 可打印版本 2,350 / 3 |
| 第1楼 kaxuer | 发表于 2005-10-10 12:27 |
| 初级用户 发帖 2 积分 26 | |
|
(已结)定时清理磁盘的批处理中的空间判断 我想做个批处理来定时检查我的c盘,如果剩余空间少于自定的大小时,批处理会自动提示或删除指定的文件,
---------- Edited by willsort ---------- 修改原标题:批处理高手来帮帮我完成这个批处理啊 ----------- Edited by willsort ---------- [ Last edited by willsort on 2005-10-11 at 19:45 ] |
|
| 第2楼 willsort | 发表于 2005-10-11 01:30 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re kaxuer:
在讨论具体的细节之前,我想先讨论一下程序的总体构思。在程序判断磁盘空间大小并做清理与不清理的选择后,它利用了 ProcDelay 延时模块等待10秒,然后继续判断。我认为除非有某个程序异常快速的侵占磁盘空间,否则这个时间就设定的过于短暂了,对于普通的应用每周或每半个月检测一次都是足够的,对于特殊的应用,也应保持在1天以上,否则这个程序将会耗费大量的CPU时间。 至于程序中的错误在于混淆了环境变量与文本文件的概念,第三句将set /a的结果输出重定向到了文件p%中(尽管在批处理中set /a是没有任何输出结果的),第四句if却又将p%当作环境变量来直接引用其中的数字值,这对文本文件来说是无效的。 所以建议做如下修改: [ Last edited by willsort on 2005-10-11 at 01:31 ] |
|
| 第3楼 kaxuer | 发表于 2005-10-11 08:14 |
| 初级用户 发帖 2 积分 26 | |
|
非常感谢willsort 大哥,我这段批处理搞了好久都没搞出来,经老大指点,正好问题解决,非常感谢willsort 老兄
|
|
| 第4楼 无奈何 | 发表于 2005-10-11 22:59 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
:to willsort
if "%freesize%" lss "80000" 与 if %freesize% lss 80000 的结果是不一样的。 请看一下下面两条语句的输出: C:\>if 5000 LSS 800 echo ok C:\>if "5000" LSS "800" echo ok ok 所以认为 if %freesize% lss 80000 才应该是合乎要求的。 :to kaxuer 实在没有看出你的程序怎么退出,大于 80000 后为什么还要延时? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |