900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 对用批处理写的chm反编译工具小析

对用批处理写的chm反编译工具小析

时间:2020-09-11 16:40:54

相关推荐

对用批处理写的chm反编译工具小析

为什么80%的码农都做不了架构师?>>>

起初看到这个题目的时候都觉得不太可能,批处理还能做这个事?看完了以后,真觉得可能,只不过是用到了我没有常用到的hh.exe,来看看代码吧

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::chm文件反编译器V1.3 :: ::功能: ::单个/批量反编译chm文件,并保持资源的原始结构。 ::使用方式有两种: ::①把单个或多个文件直接拖放到本程序。 ::②直接双击运行。此时处理的是当前目录下所有以.chm为后缀的文件 ::执行过程及处理效果: ::因为hh-decompile语句不能使用引号,所以,先把原始资源释放到 ::短文件名格式的文件夹中,释放完毕后再改名; ::两种执行方式都有简单的容错处理;反编译后的资源放在单独的文件夹 ::中,此文件夹位于当前目录,并以chm文件名命名。 ::无法识别不以.chm为后缀名的chm文件,但是可以识别以.chm为后缀名 ::的其他文件(貌似有点拗口^_^) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echooff setTT=chm文件反编译器1.3 echo.&echo.&echo正在反编译CHM文件,请稍候... cd/d"%~dp0" ::以拖动文件到批处理文件上的方式运行批处理时,%cd%的值将会强制转换为 ::%homepath%,因此,上一条语句非常关键! set"destination=chm文件反编译结果" for/f"delims="%%iin("%destination%")doset"destination_short=%%~sfi" md"%destination%"2>nul del/a/f"%destination%\伪chm文件列表.txt"2>nul if"%~1"==""gotoAll :Some setstr=%* set"str=%str:"=%" set"str=%str%" callset"str=%%str:%~d1=""%~d1%%" for%%iin("%str%")do( ifnot%%i==""( title%TT%-正在处理"%%~nxi" if/inot"%%~xi"==".chm"( echo.&echo"%%~nxi"不是chm文件 echo.&echo请按任意键继续... pause>nul cls echo.&echo.&echo正在反编译CHM文件,请稍候... )else( rd/q/s"%%~ni"2>nul hh-decompile%destination_short%\%%~sni%%~sfi ifnotexist"%destination%\%%~sni"( echo"%%~nxi">>"%destination%\伪chm文件列表.txt" )else( ren"%destination%\%%~sni""%%~ni"2>nul ) ) ) ) exit :All for/f"delims="%%iin('dir/a-d/b*.chm2^>nul')do( title%TT%-正在处理"%%~nxi" rd/q/s"%destination%\%%~ni"2>nul hh-decompile%destination_short%\%%~sni%%~sfi ifnotexist"%destination%\%%~sni"( echo"%%~nxi">>"%destination%\伪chm文件列表.txt" )else( ren"%destination%\%%~sni""%%~ni"2>nul ) )

作者不光用后缀名的方式进行了判断,还在处理完成后判断是不是伪chm文件列表,这点做的不错,除了这个以外,还有一点收获,在cmd中输入hh.exe 磁盘名称,看看有什么效果,不错,打开了相应的盘符,以前都是用start 磁盘盘符打开的,又学了一手。

本文出自 “乔磊的博客 学习 进步” 博客,请务必保留此出处http://sucre./1084905/413438

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。