使用 Perl 使用重命名函数重命名 zip 文件名



这是我的示例代码

#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);
my $day = strftime "%m/%d/%Y", localtime;
my $file = "abcMONcde.zip";
my $zipfile = $file;
rename("home/abc/$file","home/abc/$file.$day") || die("Error in renaming");

当我们运行此代码时,我们在重命名函数中出现错误,此代码有什么问题。

实际上您的$day打印输出abcMONcde.zip06/09/2020:

你怎么能像这样重命名文件。不可能的。文件夹不允许使用正斜杠和反斜杠。

您需要重命名$day=~s///-/g;

让我们试试这段代码:

#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);
use File::Copy;
my $day = strftime "%m/%d/%Y", localtime; $day=~s///-/g;

您能否使用-而不是/根据brian d foy评论,这是一个更好的解决方案。

my $day = strftime "%m-%d-%Y", localtime;

my $file = "abcMONcde.zip";
my $zipfile = $file;

您需要考虑将路径存储在单个变量(实际路径和目标路径(中。

my $actfilename = "home/abc/$file";
my $destfilename = "home/abc/$file.$day";

有时直接路径不起作用(根据我的经验(

rename($actfilename,$destfilename) || die("Error in renaming");

最新更新