2015-11-14 57 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

我不明白這是如何相關的。 –

相關問題