我在C:\data
内有一个包含大量文件夹的服务器。我讲了大约5000个子文件夹,每个文件夹都有一个随机名称,例如sgshVSHsXx.wjwuhHHS
。
每个文件夹都包含一个名为DB
的子文件夹,每个DB
个文件夹都包含一些数据库文件,还包含随机文件名和随机文件扩展名。
我需要浏览所有DB
个文件夹并删除超过10天的所有文件。
我认为我可以使用一些VBS,但对它没有多少经验。有人可以对这个问题有所了解吗?
由于
答案 0 :(得分:2)
当然批处理或命令提示符适用于此
forfiles /p "c:\data" /m * /s /d -10 /c "cmd /c del @path"
并且是一行。
答案 1 :(得分:1)
将以下内容另存为.vbs文件
set args = wscript.arguments
if args.count <> 2 then
wscript.echo "Syntax: " & wscript.scriptname & " <path> <days>"
wscript.quit
end if
path = args(0)
killdate = date() - args(1)
arFiles = Array()
set fso = createobject("scripting.filesystemobject")
SelectFiles path, killdate, arFiles, true
nDeleted = 0
for n = 0 to ubound(arFiles)
on error resume next 'in case of 'in use' files...
arFiles(n).delete true
if err.number = 0 then
nDeleted = nDeleted + 1
end if
on error goto 0
next
sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
on error resume next
set folder = fso.getfolder(sPath)
set files = folder.files
for each file in files
dtlastmodified = null
on error resume Next
dtlastmodified = file.datelastmodified
on error goto 0
if not isnull(dtlastmodified) Then
if dtlastmodified < vKillDate then
count = ubound(arFilesToKill) + 1
redim preserve arFilesToKill(count)
set arFilesToKill(count) = file
end if
end if
next
if bIncludeSubFolders then
for each fldr in folder.subfolders
SelectFiles fldr.path,vKillDate,arFilesToKill,true
next
end if
end sub
运行: .vbs“”
例如: c:\ delete.vbs“c:\ test folder \”10
确保从管理员命令提示符
运行# 源:http://community.spiceworks.com/scripts/show/282-delete-old-files-with-recursion