VBS脚本解决大批量RAR文件压缩
说起来有点无聊,最近因需要处理大批量的文件夹压缩(不能压缩在一个包里)
特写了个脚本,以作辅助.
RAR很方便,它能右键批量处理压缩文件,但没有批量压缩多个包的功能.
所以,没办法(或者哪位仁兄知道办法,可告知.)也许用批处理会方便些,但我不怎么懂那个
先上代码(因为俺的垃圾空间过滤部分单词,需要用中文才能写上,造成不便,还请见谅)
'++++++++++++++++++++++++++ 'WinRAR 批量文件夹压缩 '使用时将该脚本放至与要处理的文件夹的同级目录内 '默认处理同级目录内的所有文件夹 '使用需安装RAR压缩软件 '同时运行多个会互相影响 '++++++++++++++++++++++++++ Dim sh, fs, mg, rar Dim folder, tfo, IsRun Set mg=getObject("winmgmts:\\.\root\cimv2") Set fs=CreateObject("Scripting.FilesystemObject") Set sh=CreateObject("WScript.Shell") Set folder=fs.getFolder(fs.GetAbsolutePathName(".")) For Each tfo In folder.SubFolders sh.Run "WinRAR a -ibck "& tfo.Name &".rar "& tfo.Name WScript.Sleep 200 IsRun=True Do Until IsRun=False Set rar=mg.execQuery("select * from win32_process where name='WinRAR.exe'") If rar.Count>0 Then WScript.Sleep 500 Else IsRun=False End If Loop Next
这里将脚本所在文件夹内的子文件夹依次进行压缩,名称以原文件夹名称命名。
因为如果每个文件夹压缩时都需要耗费几秒甚至更长时间的话,同时调用大量RAR进程,会使压缩很慢,很有可能导致计算机卡死。
所以这里运行一个进程之后,先判断进程是否存在,存在说明压缩还在进行,就等到压缩完后再运行下一个。
也可以将判断部分的数目改动下,就可以多进程压缩(比如,2个,5个。)