案例:本人在文件服务器上有个共享的”share files“目录,其他部门需要定期删除里面的文件。
解决办法尝试一:
使用dos命令,命令如下:
attrib -s -h -r %1\*.* && del %1\*.* /q
dir %1 /ad /b /s >del.txt
for /f %%i in (del.txt) do rd %%i /s /q
(网上搜得)
以上能解决问题,但由于我文件夹命名的时候,“share”和“files”之间有空格,测试中在执行到for语句时出现文件夹名被截断的问题,因此改用其他方式。
解决办法尝试二:
'删除指定目录下的文件和子文件夹
Dim fso, startFolder, OlderThanDate
Set fso = CreateObject("Scripting.FileSystemObject")
startFolder = "E:\Test\" ' 指定目录
OlderThanDate = DateAdd("d", 0, Now) ' 如果你想删除3日前的文件,可以改变0为3
Sub DeleteOldFiles(folderName, BeforeDate)
Dim folder, file, fileCollection, folderCollection, subFolder
Set folder = fso.GetFolder(folderName)
Set fileCollection = folder.Files
For Each file In fileCollection
If file.DateLastModified < BeforeDate Then
fso.DeleteFile(file.Path)
End If
Next
Set folderCollection = folder.SubFolders
For Each subFolder In folderCollection
subFolder.delete
'DeleteOldFiles subFolder.Path, BeforeDate 如果只是删除子文件夹下的文件而不删除文件,可以使用此行
Next
End Sub
DeleteOldFiles startFolder, OlderThanDate
(供应商提供)
完全满足需求,这个我是写不出来的,技术之路还是要多加专研!
继续思考,如果就这样的vbs文件放在服务器里,一旦被他人发觉,将十分危险。必须将该脚本进行加密。微软有款Script Encoder软件,里面有个screnc命令可以完成加密。基本命令为screnc a.vbs b.vbe.只需将b.vbe在windows计划任务里执行即可。
软件下载路径:http://www.microsoft.com/download/en/confirmation.aspx?id=3375
本文介绍了如何使用VBS脚本删除Windows服务器上指定文件夹内的所有子文件夹和文件,以及如何通过Script Encoder软件加密脚本以确保安全性。文中提供了两种解决方法,包括直接的DOS命令和VBS脚本实现,并详细展示了VBS脚本的代码。最后,文章提到了使用screnc命令加密VBS脚本,以防止未经授权的访问。
1778

被折叠的 条评论
为什么被折叠?



