winrar位置获取
通过node的命令行组件child_process,运行注册表查询命令reg query "键值名" ,查找相关软件的目录,然后使用正则表达式对结果进行匹配,返回软件目录。如下:
var exec = require('child_process').exec;
exec("reg query HKEY_CLASSES_ROOT\\WinRAR\\shell\\open\\command /ve", function(e, stdout, stderr) {
if(!e){
var str = stdout.match(/\"([^\"]+)\"/)[0];
if(str){
console.log('已经找到winRar程序,详细地址为:'+str);
}else{
console.log('没有找到winRar程序,无法完成压缩功能!');
}
}
});
通过上面代码的执行,可以找到winRar的绝对路径 D:/Program Files (x86)/WinRAR/WinRAR.exe
直接调用winrar程序进行解压
运行如下代码,解压到unarchive目录:
exec('"D:/Program Files (x86)/WinRAR/WinRAR.exe" e -y F:/jstest/netbank.tar.gz F:/jstest/unarchive');
其中winrar的路径中存在空格,需要用双引号括起来。 e -y 是winrar的命令行参数。F:/jstest/netbank.tar.gz是待解压文件。F:/jstest/unarchive是解压文件存放目录
winrar命令