|
smthzh
新手上路
积分 8
发帖 3
注册 2007-1-2
状态 离线
|
『楼 主』:
请大家帮个忙!急
由于工作需要!某个目录下每隔20秒会被写入一个文件,几天就暴了!
请问老师怎样能写个批处理: 当有文件写入时隔5秒就把他删除掉(隔5秒是为了让别的程序读取) 谢谢!!!
|
|
2007-1-3 12:32 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
2 楼』:
@echo off
echo It will delete some files in this director.
echo 将在磁盘上执行删除工作,
echo Continue or Quit[C,Q]?
echo 是继续还是退出,请按键(c,q)选择。
set /p t=
if /i "%t%"=="c" (goto :lp) else goto :eof
:lp
echo Deleting....
del *.txt rem 这是你索要删除的文件
ping -n 5 127.1 >nul rem 时间是5秒
goto :lp
把它存放在你那个文件夹下,运行一次就可以了
他会自动地工作
呵呵
|
|
2007-1-4 01:59 |
|
|
balinger
中级用户
积分 356
发帖 115
注册 2004-7-27
状态 离线
|
『第
3 楼』:
二楼的似乎是隔5秒删除一次,并不判断写入时间是否大于5秒。
我用VBS写了一个,以c:\c1\c2文件夹为例。隔20秒删除一次,删除写入时间大于5秒的文件。不知能否满足楼主的要求。
将以下存为*.vbs:
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("c:\c1\c2")
do
call delete
WScript.Sleep 20000
loop
Sub delete
Dim f1, fc, s, h
h = date & " " & time
Set fc = f.Files
For Each f1 in fc
s = f1.DateCreated
s = DateDiff("S", s, h)
If s > 5 Then f1.delete
Next
End sub
|
|
2007-1-4 10:10 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
4 楼』:
改一下
:lp
echo Deleting....
for /l %%a in (1,1,1) do (
ping -n 5 127.1 >nul rem 时间是5秒
del *.txt rem 这是你索要删除的文件
)
goto :lp
其实,还可以完善一下
你看着办吧
|
|
2007-1-4 12:57 |
|
|
smthzh
新手上路
积分 8
发帖 3
注册 2007-1-2
状态 离线
|
『第
5 楼』:
谢谢!
二楼的兄弟写的:当没有文件时提示找不到*.txt,还有就是每考虑写的时间
三楼的兄弟考虑的全面些!
不过对于我这个菜鸟!都是很值得学习的!
再次谢谢了!
|
|
2007-1-4 13:02 |
|
|
smthzh
新手上路
积分 8
发帖 3
注册 2007-1-2
状态 离线
|
『第
6 楼』:
改完后的还是CPU100%!我把5改成20还是一样!请问怎么回市!!!
三楼写的CPU使用率比较低
|
|
2007-1-4 13:06 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
7 楼』:
哦,有这样的事情啊?/
在我的机器上没有啊!
那我也不清楚了
呵呵
|
|
2007-1-5 01:54 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
8 楼』:
你的机器是2000的还是xp的?
|
|
2007-1-5 01:54 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by balinger at 2007-1-3 21:10:
二楼的似乎是隔5秒删除一次,并不判断写入时间是否大于5秒。
我用VBS写了一个,以c:\c1\c2文件夹为例。隔20秒删除一次,删除写入时间大于5秒的文件 ... |
|
恩,很好啊
|
|
2007-1-5 01:55 |
|