繁体   English   中英

用于移动文件的 Perl 脚本

[英]Perl script for moving files

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

我开发的代码有 70% 的工作MUX4TO1_TB ,但没有发生从MUX4TO1_TBnewfolder数据移动。 请帮我完成它。

#!/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);

您没有提供最终目标的有效路径

$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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM