玩野王粤语06,勉县一中官网,锵锵三人行 迅雷
脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下n天前创建的文件的vbs脚本,在配置文件 delfolderlist.txt 中配置要删除的文件路径,only-del-files 下的路径 是只删除其下的文件,不删除其内的子目录的文件。del-folder-files下的路径 是删除其内文件及其子目录内的文件,子目录为空时删除目录,删除的文件list 放在log文件夹内。例配置文件delfolder.txt 内容如下:
only-del-files
e:\code\test
del-folder-files
e:\code\subfolder
脚本内容:
dim fstream '定义读文件流对象
dim wstream '定义写文件流对象
dim folder '文件夹对象
dim rootfolder '文件夹对象
dim file '文件对象
dim subdirs '文件夹集合对象
dim subdir '文件夹对象
dim loopfolder '文件夹对象
dim dopath '路径字符串
dim delflag
delflag =0 ' 0: 不删除子目录 ,1:删除子目录
dim wsh
set wsh=wscript.createobject("wscript.shell")'击活wscript.shell对象
main()
sub main()
dim filename
filecount = 0
foldercount = 0
set mfso = createobject("scripting.filesystemobject")
set wfso = createobject("scripting.filesystemobject")
set fstream = mfso.opentextfile("delfolderlist.txt", 1)
filename=cstr(date)
filename=filename + "_" + replace(cstr(time),":","_")
set wstream = wfso.createtextfile("log\" & filename & ".log", true)
'循环读取一行filelist.txt中的内容
do while true <> fstream.atendofstream
dopath = fstream.readline
if dopath = "only-del-files" then
delflag =0
if true <> fstream.atendofstream then
dopath = fstream.readline
end if
end if
if dopath = "del-folder-files" then
delflag =1
if true <> fstream.atendofstream then
dopath = fstream.readline
end if
end if
if mfso.folderexists(dopath) then
if 1 = delflag then ' 删除子目录
set rootfolder=mfso.getfolder(dopath)
wstream.writeline(rootfolder.path & " 下删除了以下文件:")
del_file_subfolder rootfolder
wstream.writeline(rootfolder.path & " 下删除了以下文件夹:")
del_folderfunc rootfolder
'del_folderfunc rootfolder
wstream.writeblanklines(1)
else '只删除文件
set rootfolder=mfso.getfolder(dopath)
wstream.writeline(rootfolder.path & " 下删除了以下文件:")
del_file rootfolder
wstream.writeblanklines(1)
end if
else
wsh.popup("文件夹“" & dopath &"”不存在或路径错误")
wstream.writeline("文件夹“" & dopath &"”不存在或路径错误")
end if
loop
fstream.close
'wsh.popup("共删除文件" & filecount & "个、文件夹" & foldercount & "个")
end sub
sub del_file(folder)
dim df '标记
for each file in folder.files
df=datediff("d",file.datecreated,now)
if (df>1) then '1天前的文件
wstream.writeline(folder.path & "\" & file.name & vbtab & file.datecreated)
file.delete()
filecount=filecount+1
end if
next
end sub
''删除文件 同时删除subfolder
sub del_file_subfolder(folder)
dim df '标记
for each file in folder.files
df=datediff("d",file.datecreated,now)
if (df>1) then
wstream.writeline(folder.path & "\" & file.name & vbtab & file.datecreated)
file.delete()
filecount=filecount+1
end if
next
'递归调用del_file函数,实现子目录文件的遍历删除
if (0 < folder.subfolders.count ) then
for each loopfolder in folder.subfolders
del_file_subfolder loopfolder
next
end if
end sub
sub del_folderfunc(folder)
dim loopsub
dim tmp
if 0=folder.subfolders.count then '判断其下是否还有子文件夹,若无
if 0=folder.files.count then '如果其下还有文件则退出(符合条件的文件上一步已删掉了)
if ucase(folder.path)<>ucase(dopath) then '判断是否为根目录,是则退出,不是则删除
wstream.writeline(folder.path & vbtab & folder.datecreated)
folder.delete
foldercount=foldercount+1
'' del_folderfunc(mfso.getfolder(delfolderpath)) '删除该文件夹后从根目录重新检查,以检查其父目录是否该删除
end if
end if
else
for each subdir in folder.subfolders '还有子文件夹则轮循每一个子文件夹
del_folderfunc(subdir)
next
end if
end sub
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
网友评论