我有一台服务器正在运行并且每小时创建10KB日志TXT文件。当TXT文件达到50MB时,我想清除所有文件并保留10MB(因此删除40MB文件,剩下的10MB文件只是最新文件)。
我想使用dir
,如:
dir *.txt
在dir
的最后一行之前有类似的内容:
9 Rép(s) 566 773 248 octets
然后我会提取这一行的最后一个数字,如果这个数字大于500万,那么我将删除所有前40MB的文件。
我不知道如何继续,有人可以帮忙吗?
答案 0 :(得分:0)
我不认为你可以批量做到这一点而不伤害自己。不好。
将VBScript与disconnected recordset一起使用可能是更好的方法。
Const adBigInt = 20
Const adDate = 7
Const adVarChar = 200
Const SizeThreshold = 52428800 'Byte
Const SizeLimit = 10485760 'Byte
Set fso = CreateObject("Scripting.FileSystemObject")
Set rs = CreateObject("ADOR.Recordset")
rs.Fields.Append "path", adVarChar, 255
rs.Fields.Append "date", adDate
rs.Fields.Append "size", adBigInt
rs.Open
totalSize = 0
For Each f In fso.GetFolder("C:\Temp").Files
rs.AddNew
rs("path") = f.Path
rs("date") = f.DateLastModified
rs("size") = f.Size
rs.Update
totalSize = totalSize + f.Size
Next
If totalSize > SizeThreshold Then
rs.Sort = "date ASC, size ASC"
rs.MoveFirst
Do Until rs.EOF Or totalSize < SizeLimit
rs.MoveFirst
fso.DeleteFile rs("path")
totalSize = totalSize - CLng(rs("size"))
rs.Delete
Loop
End If
rs.Close