我有一个Perl脚本,它从文件accessFiles.txt
中读取文件列表,并将它们复制到另一个位置。
open my $accessFiles, "$scriptDir\\accessFiles.txt" or die "Could not open access file list $!";
while (my $accessFile = <$accessFiles>) {
my($file, $dir, $ext) = fileparse($accessFile, qr/\.[^.]*/);
my $accessDir = "$localDir\\AccessFiles\\$file";
my $accessCopy = "$accessDir\\$file$ext";
system("rmdir","/S", "/Q",$accessDir);
system("mkdir",$accessDir);
system("copy", $accessFile, $accessCopy);
}
复制命令的输出表明它为accessFiles.txt
中的每个文件复制了一个文件,但只复制了最后一个文件。
我在复制之前和之后添加了输入语句,我无法在任何时间看到复制目录中的任何其他文件。
现在,如果我将脚本更改为从文件数组中读取,那么它可以完美地运行。
my @files = ('\\\\sourceshare\acc1.accdb', '\\\\sourceshare\acc2.accdb');
foreach my $accessFile (@files) {
my($file, $dir, $ext) = fileparse($accessFile, qr/\.[^.]*/);
my $accessDir = "$localDir\\AccessFiles\\$file";
my $accessCopy = "$accessDir\\$file$ext";
system("rmdir","/S", "/Q",$accessDir);
system("mkdir",$accessDir);
system("copy", $accessFile, $accessCopy);
}
提前致谢。
答案 0 :(得分:3)
您没有删除尾随换行符。添加
chomp($accessFile);