【工具】压缩包批量清除密码工具【使用内存盘提高读写】

By the100s at 2022-11-05 • 0人收藏 • 338人看过

本工具参考了http://htmlayout.cn/t/21394和aardio的几个范例,感谢aardio和作者


本工具使用了高速内存盘进行缓存读写压缩包,相对传统的方式,速度理论上应该更胜一筹。

代码和逻辑写得非常糟糕,the100s不是专业的,请不要喷。


微信截图_20221105153205.png

import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var mainForm = win.form(text="压缩包批量清除密码工具";right=758;bottom=439)
mainForm.add(
btnExecute={cls="plus";text="  开始";left=467;top=384;right=738;bottom=429;align="left";bgcolor=-5197169;db=1;dl=1;font=LOGFONT(h=-16);iconStyle={align="left";font=LOGFONT(h=-16;name='FontAwesome');padding={left=20}};iconText='\uF17A';notify=1;textPadding={left=42};z=2};
button={cls="button";text="OSFmount软件";left=618;top=266;right=726;bottom=301;z=14};
button2={cls="button";text="打开";left=676;top=48;right=724;bottom=78;z=15};
chkSubDir={cls="checkbox";text="递归处理子目录";left=287;top=391;right=403;bottom=407;db=1;disabled=1;dr=1;z=13};
driver={cls="edit";text="x:";left=615;top=48;right=664;bottom=78;edge=1;z=5};
editResult={cls="edit";text="本工具借用免费OSFmount软件产生内存盘以提高对压缩包的读写速度、
本工具引用了网络收集的winrar5版本,仅供于学习,请24小时内删除,否则产生任何问题请自负";left=15;top=13;right=598;bottom=314;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1};
password={cls="edit";text="yyxitong.com";left=619;top=213;right=715;bottom=243;edge=1;z=8};
size={cls="edit";text="1024m";left=616;top=120;right=712;bottom=150;edge=1;z=6};
static={cls="static";text="内存盘";left=616;top=23;right=711;bottom=44;transparent=1;z=3};
static2={cls="static";text="内存盘大小";left=615;top=98;right=710;bottom=119;transparent=1;z=4};
static3={cls="static";text="被清密码";left=616;top=188;right=711;bottom=209;transparent=1;z=7};
static4={cls="static";text="后缀名:";left=17;top=389;right=71;bottom=408;align="right";dl=1;dt=1;transparent=1;z=11};
static5={cls="static";text="处理目录:";left=10;top=334;right=79;bottom=358;align="right";dl=1;dt=1;transparent=1;z=12};
txtDir={cls="edit";left=92;top=329;right=723;bottom=358;dl=1;dr=1;dt=1;edge=1;readonly=1;z=9};
txtExt={cls="edit";text="*.rar|*.zip";left=74;top=384;right=254;bottom=413;dl=1;dt=1;edge=1;multiline=1;z=10}
)
/*}}*/

/*按钮皮肤{{*/
mainForm.btnExecute.skin({
	background={
		default=0xFF8FB2B0;
		hover=0xFF928BB3;
		disabled=0xFFCCCCCC; 
	}
});
/*}}*/
var driver=mainForm.driver.text
//x:
var size=mainForm.size.text
//1024m
var password=mainForm.password.text
var batStr0
var updatebatstr=function(){
	/*批处理指令字符串{{*/
var batStr = /***
@echo off
set RD=
***/

batStr=batStr ++ driver

var bats2=/***

if exist %RD%\ goto SKIP1
.\res\OSFMount.com -a -t vm -s 
***/
//64M
var bats3=/***
 -m %RD% 
format %RD% /y /q /fs:ntfs  /v:Ramdisk
:SKIP1
***/
bats2=bats2 ++ size ++bats3
batStr=batStr ++ bats2


return batStr; 
/*}}*/

}
batStr0=updatebatstr()


import process.batch;
import fsys.dlg.dir;
import fsys;
	import process;
	var 取文件名1=function(fn){
		var exts=string.split(mainForm.txtExt.text,"|")
		var newfn=fn
		for(i=1;#exts;1){
		exts[i]	=string.replace(exts[i],"@*","")
		
		newfn=string.replace(newfn,exts[i],"")
		
		}
		
		return newfn
	}
	
mainForm.btnExecute.oncommand = function(id,event){

	var prcs = process.batch( batStr0 );

	mainForm.btnExecute.disabledText = {'\uF254';'\uF251';'\uF252';'\uF253';'\uF250';text=''}	
	
	var out,err = prcs.readAll(); //可在参数 @1 中指定匹配模式查找指定字符串
	mainForm.editResult.print(out);

var files={}
var exfilefolders={}
	mainForm.txtDir.text = fsys.dlg.dir(,mainForm,'请选择要批量的目录')
	
	fsys.enum( mainForm.txtDir.text , string.split(mainForm.txtExt.text,"|"),
		function(dir,filename,fullpath,findData){  
			if(filename){ 

cmds=`res\winrar.exe x -y -ad -p`++ password ++` "`++ fullpath ++`" -w` ++driver ++" " ++driver
mainForm.editResult.print(cmds);
exfilefolder=取文件名1(filename)
table.push(files,filename)
table.push(exfilefolders,exfilefolder)

var prcs,err = process(cmds); 
assert(prcs,err);
prcs.wait()			
				
				
			} 
		},mainForm.chkSubDir.checked 
	);
	
//wait for all extract finished	-ibck 
for(i=1;#files;1){
cmds2=`res\winrar.exe  a -df -ep1 -r -y -o -w`++driver++ ` "`++driver++"\" ++files[i]++`" "` ++driver++"\"++exfilefolders[i]++`\"`
mainForm.editResult.print(cmds2 );	
var prcs,err = process(cmds2); 
prcs.wait()	
assert(prcs,err);
}

	mainForm.btnExecute.disabledText = null;
	
	
	
}



mainForm.button.oncommand = function(id,event){
	process(`res\OSFMount.exe`)
}

mainForm.button2.oncommand = function(id,event){
	if(io.exist(driver)){
	process.explore(driver)	
	}
	
}

mainForm.driver.oncommand = function(id,event){
	driver=mainForm.driver.text
	batStr0=updatebatstr()
}

mainForm.size.oncommand = function(id,event){
	size=mainForm.size.text
	batStr0=updatebatstr()
//1024m

}

mainForm.password.oncommand = function(id,event){
	password=mainForm.password.text
	batStr0=updatebatstr()
}

mainForm.show();
win.loopMessage();


aardio工程.zip

除了下载源码,请自行下载OSFmount和winRAR到工程里的res目录存放。

或者可以下载成品程序体验:

https://www.123pan.com/s/mtEDVv-N33hH



1 个回复 | 最后更新于 2022-11-08
2022-11-05   #1

感谢分享,简洁实用

登录后方可回帖

登 录
信息栏
公 告:

原域名已转让

临时更换为

Aardio.com.cn

请相互转告!



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 popdes@126.com

友情链接
Aardio官方     |     Aardio官方更新日志
Stm32cube中文网
Sciter在线学习文档
才仁机械


打赏本站
Loading...