超星图书压缩专用脚本程序

超星图书每页为独立文件,浪费硬盘空间且拷贝慢。可将每本图书页面文件压缩成一个文件。本文用Windows Script脚本语言编写脚本,能自动压缩指定目录下图书目录。介绍了使用PKZIP25和WINRAR命令行版本的脚本及参数,还给出执行注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超星图书虽然文字质量不高,但是比较新,比较全,所以还是值得一看的。

但是,超星图书的每一页,都是一个独立的文件,很小,远远小于现在的硬盘簇大小,造成极大的空间浪费,同时,在拷贝移动文件时,由于要处理大量文件,拷贝或移动的速度也极慢。

比较好的方法,是把每本超星图书的全部页面文件压缩成一个文件,阅读时再解开,这样可以大大减少硬盘空间浪费,拷贝时速度也指数提高。

不过,如果有大量超星图书,要对每本书,在目录上按右按,然后选择压缩,效率太低。因此,我在这里用Windows Script脚本语言编写了一个脚本,能够自动把指定目录下的每个图书目录自动压缩成单独的压缩文件。

如果是在命令行窗口下执行,可以用

cscript compress.js 要压缩的目录

这样,可以输出工作的进度信息,如果直接点击compress.js,会弹出提示窗口,影响使用。

同时,需要在路径PATH环境参数里设置压缩使用的压缩软件的目录,我使用二种压缩软件,一种是PKZIP25,是32位的命令行下ZIP压缩程序,还用WINRAR的命令行版本,RAR.exe,对应这二个压缩程序的脚本如下:

使用PKZIP25.exe的Compress.js

var fs=new ActiveXObject("Scripting.FileSystemObject");
var s=WScript.CreateObject("WScript.Shell");
var arg=WScript.Arguments;

//取得要处理的目录
if(arg.Count())
{
  var f=fs.GetFolder(arg.item(0));
}
else
{
  var f=fs.GetFolder(".")};
}

//取得指定目录下所有目录的集合
  var fc=new Enumerator(f.SubFolders);
  for(;!fc.atEnd();fc.moveNext())
  {
    var ff=fs.GetFolder(fc.item());
    var fname=ff.Name;
    WScript.Echo("正在压缩 "+'"'+fname+'"');
    s.Run("pkzip25.exe -add -directories -move -recurse /""+fname+"/"  /""+fc.item()+"/",7,true);
    WScript.Echo('"'+fname+'"'+"压缩完");
  }
}
注释:pkzip25的压缩命令行参数是
-add加入文件到压缩文档
-move压缩后删除源文件
-directories保存目录结构,使用相对路径
-recurse递归处理子目录

 

使用rar.exe的compress.js

var fs=new ActiveXObject("Scripting.FileSystemObject");
var s=WScript.CreateObject("WScript.Shell");
var arg=WScript.Arguments;

//取得要处理的目录
if(arg.Count())
{
  var f=fs.GetFolder(arg.item(0));
}
else
{
  var f=fs.GetFolder(".")};
}

//取得指定目录下所有目录的集合
  var fc=new Enumerator(f.SubFolders);
  for(;!fc.atEnd();fc.moveNext())
  {
    var ff=fs.GetFolder(fc.item());
    var fname=ff.Name;
    WScript.Echo("正在压缩 "+'"'+fname+'"');
    s.Run("rar m -r /""+fname+"/"  /""+fc.item()+"/",7,true);
    WScript.Echo('"'+fname+'"'+"压缩完");
  }
}
注释:rar的压缩命令行参数是
m 移动文件到压缩档案
-保存目录结构,使用相对路径,并递归处理子目录

 

注意:

1、一定要用cscript.exe在命令行下执行,否则会不断弹出提示窗口
2、在PATH环境变量里设置好rar和pkzip25的路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值