2015-11-14 60 views
0

我对perl很陌生,试图创建一个zip文件。这些文件,脚本都在同一个目录中,并且zip也只需要在那里。下面是我正在尝试的代码,它正在退出,没有任何错误,但没有任何zip文件。我传递“* .txt”作为命令行参数。请建议。在perl上创建远程服务器上的文件的zip文件

use strict; 
use Archive::Zip qw(:ERROR_CODES :CONSTANTS); 

die "usage: $0 zip.pl\n" 
    if (scalar(@ARGV) < 1); 

my $zipName = "dummy"; 
my $zip  = Archive::Zip->new(); 

foreach my $memberName (map { glob} @ARGV) { 
    if (-d $memberName) { 
     warn "Can't add tree $memberName\n" 
      if $zip->addTree($memberName, $memberName) != AZ_OK; 
    } else { 
     $zip->addFile($memberName) 
      or warn "Can't add file $memberName\n"; 
    } 
} 

my $status = $zip->writeToFileNamed($zipName); 
exit $status; 
+0

在Linux上工作时,*可能*在Windows扩展问题上试试'$ zipName =“dummy.zip”'并检查它是否有效。 –

+0

M在windows上工作,尝试在名称中使用“.zip”,没有帮助。另请看看我传递* .txt作为参数,并且我有abc.txt,xyz.txt文件出现在位置上。那是对的吗? – Sur

+0

你是否用双引号将它传递为'*'是特殊字符,或者一旦将'map {glob} @ ARGV'改为'glob“* .txt”'并验证。 –

回答

-1

该网站(ARGS)的方法是专为此设计的。您可以发送一个shell命令并使其在远程服务器上运行。 http://perldoc.perl.org/Net/FTP.html#METHODS

+0

我需要将这些文件压缩到Windows远程服务器上。 – Sur

+0

任何人都可以建议这里可能是什么问题。 – Sur

+0

我不明白这是如何相关的。 –

相关问题