批量去掉pdf文件密码perl脚本

来源:互联网 发布:cr2打开软件 编辑:程序博客网 时间:2024/06/06 01:44

###########去掉pdf文件密码脚本文件#################
print "begin....../n";
###############################定义你自己的文档目录!!!!!
my $path = "..//*.pdf";
###############################print "$path/n";
###############################把所有pdf文件列表
$LIS_FILE = "1234.txt";
system("dir /a /b /s $path >$LIS_FILE ");

open(LIS_FILE , "<$LIS_FILE ") or die "cannot open $LIS_FILE/n";

@reading = <LIS_FILE>;
#print "@reading /n";
$object_count=0;
$obj_list='';

#############################生成批处理文件
open(BATFILE,"+>1234.BAT") or die "CREATE FILE FAIL!/n";
foreach (@reading)    ####读取一行到$_变量
{
   #####s/////////g;   # 此处每次循环将从 @array 数组中取出一个元素存放在 $_ 变量中,并对 $_ 进行替换处理。g 表示把待处理字符串中所有符合 <pattern>; 的模式全部替换为 <replacement>; 字符串,而不是只替换第一个出现的模式。
   ##############把行结尾的换行/n替换成空格
   s//n/ /;

   #$obj_list .= " $_";  ###这句是累加
  
   #$obj_list = " $_";    ###这句才是仅仅当前行
   $obj_list = "$_";      ###比上一句少了前后空格 2010.3.22
  
   #################打印到文件 【这里要求你把安装的文件复制到当前目录(exe 和license)】$obj_list文件名如果有空格则会失败故加""  2010.3.22
   print BATFILE "pdfdecrypt.exe -i /"$obj_list/" -u 4252308177 -l error.log/n" ; #6193266863

   $obj_count++;   ##计数
}
print BATFILE "done!!";
close(BATFILE);
close(LIS_FILE);

system("call 1234.bat");    ##执行解密批处理
open(LOG, ">error.log") or die "open log file fail!";
print LOG "/n";
print LOG "pdfdecrypt $obj_count files/n";   ##打印处理文件数
close(LOG);

#########jordan.sg end 2009.4.27#################
#########jordan.sg end 2010.3.22  解决文件名有空格导致出错问题#################

原创粉丝点击