|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
[ 作者:weiqiboy 加入时间:2007-09-30 16:04:19 来自: Linux联盟收集整理
] | |
|
chm文档可使用\windows\hh.exe反编译,但它一次只能反编译一个chm文档,也不支持长文件名,我写了一个脚本使之可以批量反编译chm文档,当然也可以“支持”任何合法的文件名(这里之所以把支持括起来是因为脚本里使用了小伎俩,并非真的使hh支持长文件名),使用方法:脚本名 filename1 filename2 ...(这里的filename 可以支持通配符,如*.chm.x2dLinux联盟
#!/usr/bin/perlx2dLinux联盟 x2dLinux联盟 #Decompile .chm file to html format.x2dLinux联盟 x2dLinux联盟 #Author Huang Yong.x2dLinux联盟 x2dLinux联盟 #2007-9-10x2dLinux联盟 x2dLinux联盟 #Usage:progname filename1 filename2 ...x2dLinux联盟 x2dLinux联盟 #可使用通配符x2dLinux联盟 x2dLinux联盟 x2dLinux联盟 use File::Copy;x2dLinux联盟 use File::Basename;x2dLinux联盟 x2dLinux联盟 sub decompilerx2dLinux联盟 {x2dLinux联盟 my $chmfile = $_[0];x2dLinux联盟 my $tmp = "temp";x2dLinux联盟 while (-e "$tmp.chm" or -d $tmp){x2dLinux联盟 my $i=1;x2dLinux联盟 $tmp = $tmp.$i;x2dLinux联盟 $i++;x2dLinux联盟 } x2dLinux联盟 die "Cannot open file $chmfile" unless (-e $chmfile);x2dLinux联盟 x2dLinux联盟 copy($chmfile,"$tmp.chm") or die "Copy failed: $!";x2dLinux联盟 x2dLinux联盟 mkdir ("$tmp") or die "Cannot create temp!";x2dLinux联盟 `hh.exe -decompile $tmp $tmp.chm`;x2dLinux联盟 my $tm = basename($chmfile);x2dLinux联盟 my $html_dir;x2dLinux联盟 if ($tm =~ m@(.+)\.chm@i){x2dLinux联盟 $html_dir = $1;x2dLinux联盟 }x2dLinux联盟 move("$tmp",$html_dir);x2dLinux联盟 unlink ("$tmp.chm");x2dLinux联盟 }x2dLinux联盟 x2dLinux联盟 foreach(@ARGV){x2dLinux联盟 my @chmfile = glob $_;x2dLinux联盟 foreach $file(@chmfile){x2dLinux联盟 print "正在反编译 $file,请稍候...\n";x2dLinux联盟 decompiler($file);x2dLinux联盟 print "文件$file编译完成。\n"x2dLinux联盟 } x2dLinux联盟 } |
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|