脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下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
脚本内容:
Option Explicit dim mFSO '定义文件系统对象 dim wFSO '定义文件系统对象 DIM filecount '文件计数 dim foldercount '文件夹计数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
本文向大家介绍Linux使用shell脚本定时删除历史日志文件,包括了Linux使用shell脚本定时删除历史日志文件的使用技巧和注意事项,需要的朋友参考一下 1、tools目录文件结构 2、删除历史文件脚本 del_history_files 3、删除历史文件脚本的配置文件 del_history_files.cfg 4、crontab 执行即可 以上就是本文的全部内容,希望对大家的学习有所帮助
问题内容: 是否有任何函数调用或简单的方法可以从golang的文本文件中删除前N个字节?假设文件有争议地由各种go例程附加,同时我想删除文件的前N个字节。 问题答案: 您需要跳过第一个字节并进行常规读取,请参见示例:
我有这样的数据结构: Employees(集合)>{EmployeeID}(文档)>Chat(集合)>{ChatId}(文档)。 我真的找了很多这个,但它真的很难。请帮帮我.
本文向大家介绍vbs 定时删除功能实现代码,包括了vbs 定时删除功能实现代码的使用技巧和注意事项,需要的朋友参考一下 参考代码一: 参考代码二:
本文向大家介绍Shell定时删除指定时间之前的文件,包括了Shell定时删除指定时间之前的文件的使用技巧和注意事项,需要的朋友参考一下 最近世界杯来了,一直忙于工作和世界杯之间,都没有空来管管我的blog了,今天只能整个简单的小shell给大家了.公司要求删除一个月之前的备份文件,免得把硬盘给整爆了,上服务器看了下,居然都有3个月的备份没有清理了,还好是sql备份,不然硬盘空间早就满了. 下面是我
我无法让FORFILES为我工作。我运行一个. bat,使用下面的一个示例备份我每天拥有的一些数据库。 然后,在运行备份后,我想使用下面的示例删除超过五天的旧文件。 但实际情况是,它创建备份,但从不删除旧的备份。我做错了什么? Ken这似乎仍然不起作用。我将@文件更改为@路径并运行了,但我仍然有备份。我还有另一个问题,我是否可以将删除限制为仅从bak\u开始的文件?我是否可以按文件名删除该文件,因