复制文件名中指定名称的文件

时间:2014-11-13 06:19:36

标签: perl

我知道如下的简单副本,它可以将文件从一个目录复制到另一个目录。

代码:

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

2 个答案:

答案 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";