【发布时间】:2017-06-20 18:37:26
【问题描述】:
好吧,我完全不知所措。
我正在尝试从 7zip 文件中提取所有 XML 和 PDF。 所述文件内还有更多内容,所以我只想从 PDF 文件夹和 XML 文件夹中提取。保留文件结构,不在任何其他文件夹中搜索。
我正在使用 7Zip 命令行来执行此操作。
我执行了两个几乎相同的子例程。
sub Extract_pdfs_from_this
{
my ($file, $destination) = @_;
my $sevenzip_executable = '\\\\server\7-Zip\7z.exe';
my $extract_pdfs = "$sevenzip_executable e -y -o$destination $file output\\JETPDF\\DISB\\*.pdf ";
print STDOUT "\n\nExtracting PDFs From $file \n>>$extract_pdfs \n";
eval{system($extract_pdfs)};
print STDOUT "Finished Extracting PDFs \n";
return;
}
..
sub Extract_xmls_from_this
{
my ($file, $destination) = @_;
my $sevenzip_executable = '\\\\server\7-Zip\7z.exe';
my $extract_xmls = "$sevenzip_executable e -y -o$destination $file staging\\DISB\\OnBase\\*.xml ";
print STDOUT "\n\nExtracting XMLs From $file \n>>$extract_xmls \n";
eval{system($extract_xmls)};
print STDOUT "Finished Extracting XMLs \n";
return;
}
我就是这样使用它的......
my $in_extraction_directory = dirname(__FILE__);
my $input_subdirectory = "$directory\\$subdirectory";
my @in_seven_zip_files = Get_all_sevenzips_in($input_subdirectory);
foreach my $sevenzip_file (@in_seven_zip_files)
{
$sevenzip_file = "$input_subdirectory\\$sevenzip_file";
Extract_pdfs_from_this($sevenzip_file, $in_extraction_directory);
Extract_xmls_from_this($sevenzip_file, $in_extraction_directory);
}
执行时会提取 PDF,但不会提取 XML。 我收到一个错误,没有要处理的文件。
我觉得 7zip 挂断了上次通话的文件。有没有办法关闭它或释放文件?
感谢您的帮助,为此浪费了很多时间。
谢谢!
【问题讨论】:
-
好吧我也想补充一下,我现在已经尝试将命令写入批处理文件来执行,但没有运气......同样的事情。
标签: perl zip 7zip strawberry-perl activestate