首页  > 计算机 >

使用WScript批量解压缩

本文按署名·非商业用途·保持一致授权
作者:  ,发表于2006年05月18日02时56分 

今天用一台装windows的机器从eMule下了些音乐下来,几十个压缩包,手工解压缩太麻烦。想批量解压缩,不知道是不是winrar没有这个功能,反正我是没在winrar里找到批量解压缩的功能。于是找找资料,写了一个WScript脚本来批量解压缩。有人问我为什么不用Linux来下载解压缩,没办法,谁叫大家都用rar压缩,在我的机器上,linux解rar出错率在10%左右。不知道是不是rp。

使用方法:
1)把C:\Program Files\WinRAR\Rar.exe复制一份到系统文件夹下(如:C:\WINDOWS)
2)把下面的代码保存为rar.js,假设保存到c盘下吧。

var fso = WScript.CreateObject("Scripting.FileSystemObject");
var archive_dir = "C:\\Program Files\\eMule\\Incoming\\beyond";//压缩文件存放路径
var to_dir = "E:\\music";//解压缩到这里
var rar_exe = "Rar.exe";//解压缩工具
var get_name_pattern  = /SurfChen\.\-\.\[([^\]]*)\]/;//获取文件名字的正则
var number_of_pattern = 1;//名字在返回的正则匹配中的位置
if (fso.FolderExists(archive_dir)==false) {
	WScript.Echo("folder does not exists");
	WScript.quit(1);
}
function getFiles(Folder)
{
	return new Enumerator(Folder.Files);
}
var WshShell = WScript.CreateObject("WScript.Shell");
var my_folder = fso.GetFolder(archive_dir);
var my_files = getFiles(my_folder);
for	(my_files.moveFirst();!my_files.atEnd();my_files.moveNext()) {
	file_path    = new String(my_files.item());
	file_name_rs = file_path.match(get_name_pattern);
	to_e_dir = to_dir+"\\"+file_name_rs[number_of_pattern];
	if (fso.FolderExists(to_e_dir)==false) {
		fso.CreateFolder(to_e_dir);
	}
	WshShell.run(rar_exe+" e \"" + file_path +"\" " + to_e_dir,0,true);
}

3)运行 WScript C:/rar.js



5个评论

  1. Vv:

    全选了再解压,可以根据需要选择那个解压到子目录。
    冲动是魔鬼啊

  2. SurfChen:

    原来如此,这下我被鄙视了。。
    再问一下,我全选后看到”解压每个压缩文件到独立文件夹”,能否选择这些独立文件夹的上一级目录?现在这个上级目录默认为当前目录。

  3. Vv:

    直接用右键菜单下那个”解压每个压缩文件到独立文件夹”,好象不行,因为我没找到可设置的地方,你可以这样:
    全选了右键–>解压文件
    里面有个杂项,你可以根据需要选择”解压文件到子目录”
    而且也可以更改解压路径.不晓得这样说行不行哈.

  4. SurfChen:

    完美了。惭愧,昨天晚上写这个脚本的时候还一直在心里骂winrar怎么这么不人性化。看来是我自己太不人性化了。

  5. chinese tea:

    我也试过,是这样的

发表评论

  本站文章若无注明,则以署名·非商业用途·保持一致授权
  桂ICP备05004302号 感谢WordPress提供本程序 本模板下载