|
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
状态 离线
|
|
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 |
|