2013-08-28 2 views
-1

В моем коде, как показано ниже, я могу скопировать один файл из удаленного местоположения, как показано ниже:Как скопировать несколько файлов с удаленного места

use File::Copy; 

$Server="192.168.1.2"; 
$ServerDir="\\C:\\temp\\test.txt"; 
my $From = "\\\\".$Server.$ServerDir; 

copy("$From","C:\\temp\\local\\") or die "Copy failed: $!"; 

Но когда есть больше чем один файл в мой $ ServerDir (\ C: \ temp \ *. Txt), как я могу их скопировать?

Пожалуйста, помогите!

ответ

-1

Петля через каждый файл, а затем скопировать один за другим, как это:

use File::Copy; 
use File::Glob; 

$Server="192.168.1.2"; 
$ServerDir="\\C:\\temp\\"; 
$From = "\\\\".$Server.$ServerDir; 

my @files = glob("$From\\*.txt"); 

for my $file (@files) { 
    copy("$From\\$file","C:\\temp\\local\\") or die "Copy failed: $!"; 
} 
+0

Но с * .txt он не работает! – user2684591

+0

Я проверил его, не входя в цикл FOR! – user2684591

+0

Я забыл использовать «use File :: Glob;» также, когда я изменил его как copy («$ file», «C: \\ temp \\ local \\») или «Скопировать не удалось: $!»; он работает штрафы. Большое спасибо за вашу помощь – user2684591

0

glob в цикле:

for (glob 'C:\temp\*.txt') { 
    copy($_, "C:\\temp\\local\\") or die "Copy failed: $_ $!"; 
} 
Смежные вопросы