1、确实可以用6楼说的forfiles命令来做,我用它来删除log文件 forfiles /p E:\Logs /m *.log -d -7 /c cmd /c del /f @path 1nul 2nul 2、不过第2种方法是用vbs脚本,我用它删除文件服务器中某个共享里过期
1、确实可以用6楼说的forfiles命令来做,我用它来删除log文件 forfiles /p E:\Logs /m *.log -d -7 /c "cmd /c del /f @path" 1>nul 2>nul 2、不过第2种方法是用vbs脚本,我用它删除文件服务器中某个共享里过期的文件和非法的文件(例如mp3,视频,exe文件等),删除的文件我先放到一个地方备份一下,保存一段时间后,另一个脚本将会把彻底删除,以免误删除文件!脚本如下: on error resume next Dim fso, startFolder, OlderThanDate Set fso = CreateObject("Scripting.FileSystemObject") startFolder = "E:\文件共享\" '需要删除过期文件所在的文件夹路径,可以是本地,也可以是网络上的共享路径 bkfolder = "E:\文件共享备份\" '备份文件的路径 OlderThanDate = DateAdd("d", -30, Date) '定义30天前的日期 DeleteOldFiles startFolder, OlderThanDate '删除过期文件或者带有特定扩展名的文件,下面Function会说明它的作用 DeleteEmptyFolders startFolder '删除空文件夹,下面Function会说明它的作用 Function DeleteOldFiles(folderName, BeforeDate) Dim folder, file, fileCollection, folderCollection, subFolder Set folder = fso.GetFolder(folderName) '获得目录名 Set fileCollection = folder.Files '获得目录里的文件 For Each file In fileCollection '提取每个文件,然后判断是否符合如下条件 GetAnExtension = fso.GetExtensionName(file) '获得文件扩展名 If file.DateLastModified < BeforeDate or GetAnExtension = "mp3" or GetAnExtension = "exe" Then '判断文件是否过期及扩展名 fso.CopyFile file.Path, bkfolder ,true '如果符合上面的要求,将把这样的文件复制到备份目录中 fso.DeleteFile(file.Path) '删除上面的文件 End If Next Set folderCollection = folder.SubFolders '对子目录进行与上面相同的操作,循环判断 For Each subFolder In folderCollection DeleteOldFiles subFolder.Path, BeforeDate Next End Function Function DeleteEmptyFolders(foldername) For Each Folder In fso.GetFolder(foldername).SubFolders DeleteEmptyFolders(Folder.Path) If Folder.Files.Count = 0 and Folder.SubFolders.Count = 0 Then '如果子目录中的文件数为0及目录数为0,那么可断定它是空目录 fso.DeleteFolder(Folder.Path) '删除空目录 End If Next End Function 'wscript.echo "删除旧的文件及目录的操作已经完成!" (责任编辑:admin) |