使用脚本自动压缩指定目标下的所有文件的代码
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
为了解决这类问题,我使用Visual Basic Scripting设计了一个脚本,可以自动达到这个目标。在本脚本中,自动压缩所有文件。为了避免将脚本自己也压缩进去,使用了一些判断。 复制代码 代码如下: call main() Sub main() Dim fs ''文件系统。 Dim f ''folder Dim fc ''files Dim s ''string Dim ws ''SHELL。 Dim subfs Dim fi ''创建SHELL。 Set ws = CreateObject("WScript.Shell") ''创建文件对象。 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(ws.currentdirectory) Handle_files(ws.currentdirectory) Set subfs = f.SubFolders ''遍历每个子目录。 For Each fi In subfs Call ListSub(fi.Path) Next End Sub Sub ListSub(filename) On Error Resume Next Dim subfs ''子目录。 ''首先处理当前目录。 Handle_Files(filename) ''创建文件对象。 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(filename) Set subfs = f.SubFolders For Each fi In subfs Call ListSub(fi.Path) Next End Sub ''处理每个目录下的文件。 Sub Handle_Files(foldername) ''创建文件对象。 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(foldername) Set fc = f.Files ''创建SHELL。 Set ws = CreateObject("WScript.Shell") ''遍历文件对象。 For Each fl In fc if ((instr(fl.Name,"vbs") = 0) and (instr(fl.Name,"rar") = 0)) then ''进行压缩。 s = "winrar M -ep " & fl.Path & ".rar " & fl.Path ws.Run s, 0, True End If Next End Sub sub output(string) wscript.echo string end sub 一种更加巧妙的方法 对上个脚本稍加改动,使用正则表达式(Regular Expression ),可以方便我们的判断过程。修改后的脚本程序如下所示。注意我们这里排除的是不压缩的文件类型。 复制代码 代码如下: call main() Sub main() Dim fs ''文件系统。 Dim f ''folder Dim fc ''files Dim s ''string Dim ws ''SHELL。 Dim subfs Dim fi ''创建SHELL。 Set ws = CreateObject("WScript.Shell") ''创建文件对象。 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(ws.currentdirectory) Handle_files(ws.currentdirectory) Set subfs = f.SubFolders ''遍历每个子目录。 For Each fi In subfs Call ListSub(fi.Path) Next End Sub Sub ListSub(filename) On Error Resume Next Dim subfs ''子目录。 ''首先处理当前目录。 Handle_Files(filename) ''创建文件对象。 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(filename) Set subfs = f.SubFolders For Each fi In subfs Call ListSub(fi.Path) Next End Sub ''处理每个目录下的文件。 Sub Handle_Files(foldername) ''创建文件对象。 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(foldername) Set fc = f.Files ''创建SHELL。 Set ws = CreateObject("WScript.Shell") ''遍历文件对象。 For Each fl In fc if ( RegExpTest(".vbs|.rar|.zip",fl.name) = false) then ''进行压缩。 s = "winrar M -ep " & fl.Path & ".rar " & fl.Path output s ws.Run s, 0, True End If Next End Sub sub output(string) wscript.echo string end sub ''使用正则表达式进行判断。 Function RegExpTest(patrn, strng) Dim regEx, retVal '' Create variable. Set regEx = New RegExp '' Create regular expression. regEx.Pattern = patrn '' Set pattern. regEx.IgnoreCase = False '' Set case sensitivity. retVal = regEx.Test(strng) '' Execute the search test. If retVal Then RegExpTest = true Else RegExpTest = false End If End Function |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于使用脚本自动压缩指定目标下的所有文件的代码的所有评论