WSH使用WINRAR实现文件拖放加密压缩

本文介绍了一个使用VBScript和JavaScript编写的脚本,该脚本能够实现将多个文件拖拽进行一键加密压缩的功能。通过简单的操作,用户可以快速地对选中的文件进行WinRAR格式的加密压缩。

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

  好久没更新了……辞职在家快一个月了,不过因为想改行了,得看些相关书籍,程序方面只得暂放一下了,不过程序总归是我的一大爱好,放弃是不会的,可惜了新买的RUBY和敏捷开发了think001.gif

 

   前几天老婆问我,能不能实现把几个文件一拖就自动用WINRRAR加密,还是加密的?想了想,应该是可以的,虽然我觉得直接用右键更方便。

  代码如下,注意开头的 <?xml version="1.0" encoding="gb2312"?>,是代码的保存格式,写什么就要保存为什么编码。本来想再加个选择保存路径的功能,不过上次写别的时候,发现有些人电脑上居然是没有的,还有就是我想偷懒……就直接保存在当前目录了。

  使用很简单,把下面的代码复制到记事本,然后另存为”你喜欢的名字.wsh”,然后把要压缩的文件选择,拖到这个WSH文件上面,就OK了

ContractedBlock.gifExpandedBlockStart.gifCode
<?xml version="1.0" encoding="gb2312"?>
<package>
    
<job id="import_function">
    
<script language="vbscript">
    
<![CDATA[
    Function InputDlg(text,title,dft)
        result 
= InputBox(text,title,dft)
        InputDlg 
= result
    End Function 
    ]]
>
    
</script>
    
    
<script language="javascript">
    
<![CDATA[
    
var shell = new ActiveXObject("WScript.Shell");
    
    
function alert(msg)
    {
        WScript.Echo(msg);
    }
    
    
function createCmd(psw,list)
    {
        
var rarPath = getRar();
        
if(!rarPath)
        {
            alert(
"你没有正确安装WinRAR,脚本退出!");
            
return false;
        }
        
//偷懒了,没用路径类来解析……
        var path = list(0).split("\\");
        path.splice(path.length
-1,1,"压缩.rar")
        path 
= path.join("\\");
        
var cmd = rarPath + " a -p"+psw + ' "'+path+'';
        
for(var i=0;i<list.length;i++)
            cmd 
= cmd + '"'+list(i)+'';
        
return cmd;
    }
    
    
function getRar()
    {
        
var rar = shell.RegRead('HKEY_CLASSES_ROOT\\.rar\\ShellNew\\FileName');//不知道怎么去检测WINRAR的路径,直接用注册表中文件关联来找了
        if(rar.length==0)
        {
            
return false;
        }
        
var path = rar.split("\\");
        path.splice(path.length
-1,1,"rar")
        path 
= path.join("\\");
        
return path;
    }
    
    
function run()
    {
        
if(WScript.Arguments.length==0)
        {
            alert(
"没有选择文件,脚本退出!");
            
return;
        }
        
var psw = InputDlg("输入你要的密码","输入密码","000000");
        
if(psw.replace(/^\s+|\s+$/,'').length==0)
        {
            alert(
"没有输入密码,脚本退出");
            
return;
        }
        
var cmd = createCmd(psw,WScript.Arguments);
        
if(cmd)
        {
            
try{
                shell.Run(cmd);
            }
catch(error){
                alert(
"压缩失败!");
            }
        }
    }
    
    run();
    ]]
>
    
</script>
    </job>
</package> 

3537687.asp

转载于:https://www.cnblogs.com/varlxj/archive/2009/04/13/1434517.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值