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个。)