中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教。关于磁盘空间已满,需要删除文件的批处理、
作者:
标题: 请教。关于磁盘空间已满,需要删除文件的批处理、 上一主题 | 下一主题
y111y
新手上路





积分 14
发帖 6
注册 2008-3-2
状态 离线
『楼 主』:  请教。关于磁盘空间已满,需要删除文件的批处理、

现在有一台服务器。N台客户机。现在有一情况,客户机因为经常自动从服务器拷贝到本地磁盘。导致d盘空间经常不足,需要人工进行清除文件。

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

思路如下。

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

如果小于8G 就删除指定文件夹。
比如说文件夹 1 2 3 4 5 ,也许1上次就已经删除,那么就依次删除,并检测磁盘空间是否保持8G 以上。

2008-3-2 21:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
y111y
新手上路





积分 14
发帖 6
注册 2008-3-2
状态 离线
『第 2 楼』:  

我是笨蛋,就会点简单的。循环起就不知所以了。

2008-3-2 23:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
y111y
新手上路





积分 14
发帖 6
注册 2008-3-2
状态 离线
『第 3 楼』:  

谁来帮个忙啊。。。。。救急 了。。。谢谢了。 。

2008-3-3 15:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 4 楼』:  

@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

2008-3-3 22:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 5 楼』:  

晕,楼上的代码经测试出现"此时不应有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

2008-3-3 22:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
y111y
新手上路





积分 14
发帖 6
注册 2008-3-2
状态 离线
『第 6 楼』:  

谢谢 那我去测试一下。

2008-3-4 00:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
y111y
新手上路





积分 14
发帖 6
注册 2008-3-2
状态 离线
『第 7 楼』:  

俺是猪。。。 谁帮我做个现成的。。俺是猪。。
比如:
磁盘空间保留8GB 以上。。少于8GB 时 删除 D:\netgame\征途
循环检测磁盘空间,如果征途目录已经没有了,磁盘空间还是大于8GB 就删除其他指定的文件夹。循环10个文件夹。

2008-3-4 00:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
y111y
新手上路





积分 14
发帖 6
注册 2008-3-2
状态 离线
『第 8 楼』:  

我发现我学习学的简直是猪,单一的知道。循环的就一塌糊涂的猪。。

2008-3-4 00:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 9 楼』:  

@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是你要删除的文件夹的完整路径
唉,真不知道这样是帮你还是害你

2008-3-4 22:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: