我是perl的新手,我正在尝试创建一个脚本,可以将具有不同扩展名的多个文件从一个目录复制到另一个目录。我正在尝试使用数组,但不确定这是否可行,但如果更容易,我会对其他方式持开放态度。
我的代码看起来像这样;
my $locationone = "filepath"
my $locationtwo = "filepath"
my @files = ("test.txt", "test.xml", "test.html");
if (-e @files){
rcopy($locationone, $locationtwo)
}
代码可能有点粗糙,因为我已经脱离了我的头脑,我仍然是perl的新手。
我真的很感激帮助。
此致
答案 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`;
}