复制具有不同扩展名的文件

时间:2014-03-04 08:55:55

标签: perl scripting network-programming

我是perl的新手,我正在尝试创建一个脚本,可以将具有不同扩展名的多个文件从一个目录复制到另一个目录。我正在尝试使用数组,但不确定这是否可行,但如果更容易,我会对其他方式持开放态度。

我的代码看起来像这样;

my $locationone = "filepath"
my $locationtwo = "filepath"

my @files = ("test.txt", "test.xml", "test.html");

if (-e @files){
    rcopy($locationone, $locationtwo)
}

代码可能有点粗糙,因为我已经脱离了我的头脑,我仍然是perl的新手。

我真的很感激帮助。

此致

2 个答案:

答案 0 :(得分:2)

你拥有的最初想法是正确的,但却错过了一些东西。

 ...
use File::Copy; # you will use this for the copy!
 ...
my $dest_folder = "/path/to/dest/folder";
my @sources_filenames = ("test.txt", "test.xml", "test.html");
my $source_folder = "/path/to/source/folder";

我们设置了一些有用的变量:文件夹名称和文件名数组。

foreach my $filename (@sources_filename) {

我们遇到了文件名

  my $source_fullpath = "$source_folder/$filename"; # you could use
  my $dest_fullpath = "$dest_folder/$filename"; # File::Spec "catfile" too.

然后我们构建(每个文件)一个完整路径起始名称和一个完整路径目标名称。

  copy($source_fullpath, $dest_fullpath) if -e $source_fullpath;

最后我们只有在文件存在时才会复制

}

答案 1 :(得分:0)

您可以这样做:

foreach my $file (@files)
{
     next unless (-e "$locationone/$file");
     `mv $locationone/$file $locationtwo`;
}