用于移动文件的Perl脚本

时间:2015-11-24 11:38:51

标签: perl

我开发了一个Perl脚本,用于从一个文件夹到另一个文件夹的数据移动。我在D驱动器中有一个文件夹(D:\projectx\MUX4TO1_TB)。在该文件夹中,我必须创建一个名为newfolder的新文件夹。然后我想在.ps中搜索MUX4TO1_TB个文件,如果找到,我想将它们移到newfolder

我开发的代码有70%可用,但数据移动不会从MUX4TO1_TB发送到newfolder。请帮我完成。

#!/usr/bin/perl
use warnings;
use File::Copy 'move';

my $srcdir = "d:\\projectx\\MUX4TO1_TB";
mkdir("D:\\projectx\\MUX4TO1_TB/Newfolder") || die "Unable to create directory <$!>\n";
my $dest = "D:\\projectx\\MUX4TO1_TB\\Newfolder";
opendir(DIR, $srcdir) or die "Can't open $srcdir: $!";
$filterstring = ".ps";

foreach my $filename (readdir(DIR)) {
    if ($filename =~ m/$filterstring/) {                          
        $cfile = $srcdir . $filename;
        print "\n moving $cfile from $srcdir to $dest \n";
        move($cfile, $dest) or die "The move operation failed: $!";                             
    }
}

closedir(DIR);

1 个答案:

答案 0 :(得分:1)

您没有提供最终目标的有效路径 $cfile= $srcdir. '\\' . $filename;

在为\\

分配新值时,您错过了$cfile反斜杠

完整代码:

use warnings;
use File::Copy 'move';
my $srcdir= "d:\\projectx\\MUX4TO1_TB";
mkdir("D:\\projectx\\MUX4TO1_TB/Newfolder") || die "Unable to create    directory <$!>\n";
my $dest = "D:\\projectx\\MUX4TO1_TB\\Newfolder";
opendir(DIR, $srcdir) or die "Can't open $srcdir: $!";
$filterstring=".ps";
foreach my $filename (readdir(DIR))
{
    if ($filename =~ m/$filterstring/) {                          
        $cfile= $srcdir. '\\' . $filename; ## You missed '\\';
        print "\n moving $cfile from $srcdir  to $dest \n";
        move($cfile,$dest)or die "The move operation failed: $!";                             
    }
}
closedir(DIR);