我知道如下的简单副本,它可以将文件从一个目录复制到另一个目录。
代码:
use File::Copy;
copy ("C:\Test\abc.txt","C:\Test2\abc.txt") or die "Copy failed: $!";
我在这里尝试的是我有一个文件,用户一致更新它,他们将添加文件名EG后面的最新日期。 abc_20141111.txt
。我可以忽略日期并复制文件吗?
预期结果:将文件名中包含名称abc
的文件复制到另一个位置。我想忽略下划线背后的日期。我可以改变什么来获得预期的结果?
EG。 文件名 - abc_20141111.txt
答案 0 :(得分:1)
使用Perl的glob运算符来获取需要打开的文件列表:
use strict;
use warnings;
use File::Copy;
my $old_dir = glob "C:/Modules/sharepoint/abc_*.xlsx";
my $new_dir = "C:/Modules/sharepoint/testing/";
copy ($old_dir,$new_dir);
答案 1 :(得分:0)
use File::Copy;
my $file = 'abc_20141114.txt';
my $actualpath = 'D:\test';
my $destinpath = 'D:\newtest';
my $newfile = $file;
$newfile=~s/^([^\_]*)\_([^\.]*)\.txt$/$1.txt/i;
copy("$actualpath\\$file", "$destinpath\\$newfile") && print "Success\n";