中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 17:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教。关于磁盘空间已满,需要删除文件的批处理、 查看 1,226 回复 8
楼 主 请教。关于磁盘空间已满,需要删除文件的批处理、 发表于 2008-03-02 21:49 ·  中国 四川 成都 郫都区 电信
新手上路
积分 14
发帖 6
注册 2008-03-02 21:01
18年会员
UID 111890
性别 男
状态 离线
现在有一台服务器。N台客户机。现在有一情况,客户机因为经常自动从服务器拷贝到本地磁盘。导致d盘空间经常不足,需要人工进行清除文件。

现请教一下。如果要启动计算机的时候加个批处理。如何做?

思路如下。

自动检测D盘空间是否小于8G
freedisk/d d: 8gb >null

如果小于8G 就删除指定文件夹。
比如说文件夹 1 2 3 4 5 ,也许1上次就已经删除,那么就依次删除,并检测磁盘空间是否保持8G 以上。
2 发表于 2008-03-02 23:25 ·  中国 四川 成都 郫都区 电信
新手上路
积分 14
发帖 6
注册 2008-03-02 21:01
18年会员
UID 111890
性别 男
状态 离线
我是笨蛋,就会点简单的。循环起就不知所以了。
3 发表于 2008-03-03 15:19 ·  中国 四川 成都 郫都区 电信
新手上路
积分 14
发帖 6
注册 2008-03-02 21:01
18年会员
UID 111890
性别 男
状态 离线
谁来帮个忙啊。。。。。救急 了。。。谢谢了。 。
4 发表于 2008-03-03 22:21 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@echo off
for %%a in (1 2 3 4 5) do (
for /f "tokens=3 delims= " %%b in ('dir d:\^|findstr "可用字节"') do (
if %%b lss 8000000000 (
echo rd /s /q "%%a"
) else (
goto out
)
)
)
:out
exit
5 发表于 2008-03-03 22:58 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
晕,楼上的代码经测试出现"此时不应有else"的错误提示,下面的代码已经修改好了
如果空间大于8G则不删除文件夹
@echo off
for %%a in (1 2 3 4 5) do (
for /f "tokens=3 delims= " %%b in ('dir d:\^|findstr "可用字节"') do (
if %%b lss 8000000000 rd /s /q "d:\%%a"
if %%b gtr 8000000000 echo 磁盘空间已经大于8G&goto out
)
)
:out
echo.&pause&exit /b
6 发表于 2008-03-04 00:14 ·  中国 四川 成都 郫都区 电信
新手上路
积分 14
发帖 6
注册 2008-03-02 21:01
18年会员
UID 111890
性别 男
状态 离线
谢谢 那我去测试一下。
7 发表于 2008-03-04 00:22 ·  中国 四川 成都 郫都区 电信
新手上路
积分 14
发帖 6
注册 2008-03-02 21:01
18年会员
UID 111890
性别 男
状态 离线
俺是猪。。。 谁帮我做个现成的。。俺是猪。。
比如:
磁盘空间保留8GB 以上。。少于8GB 时 删除 D:\netgame\征途
循环检测磁盘空间,如果征途目录已经没有了,磁盘空间还是大于8GB 就删除其他指定的文件夹。循环10个文件夹。
8 发表于 2008-03-04 00:23 ·  中国 四川 成都 郫都区 电信
新手上路
积分 14
发帖 6
注册 2008-03-02 21:01
18年会员
UID 111890
性别 男
状态 离线
我发现我学习学的简直是猪,单一的知道。循环的就一塌糊涂的猪。。
9 发表于 2008-03-04 22:42 ·  中国 北京 华为云
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@echo off
set aa=d:\netgame\征途
set ab=d:\1
set ac=d:\2
set ad=d:\3
set ae=d:\4
set af=d:\5
set ag=d:\6
set ah=d:\7
set ai=d:\8
set aj=d:\9
for %%a in (%aa% %ab% %ac% %ad% %ae% %af% %ag% %ah% %ai% %aj%) do (
for /f "tokens=3 delims= " %%b in ('dir d:\^|findstr "可用字节"') do (
if %%b lss 8000000000 rd /s /q "%%a" 2>nul
if %%b gtr 8000000000 echo 磁盘空间大于8G&goto out
)
)
:out
exit /b

1-9是你要删除的文件夹的完整路径
唉,真不知道这样是帮你还是害你
论坛跳转: