使用 perl 的 rename 函数重命名 zip 文件名 [关闭]
Posted
技术标签:
【中文标题】使用 perl 的 rename 函数重命名 zip 文件名 [关闭]【英文标题】:rename a zip file name using rename function using perl [closed] 【发布时间】:2020-09-28 02:36:09 【问题描述】:这是我的示例代码
#!/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");
当我们运行这段代码时,我们在重命名函数中遇到错误,这段代码有什么问题。
【问题讨论】:
你遇到了什么错误?or die("Can't rename \"home/abc/$file\" to \"home/abc/$file.$day\": $!\n");
当我运行此代码时出现错误“重命名错误”
是的,但是rename
返回了什么错误?我展示了如何获得它
【参考方案1】:
实际上你的$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
cmets,这是一个更好的解决方案。
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");
【讨论】:
strftime
代码不是以斜杠开头,然后用破折号替换它们,只需在格式中使用破折号。 "%m-%d-%Y"
优秀的冠军..我没看到..感谢您的指出。 +1
谢谢,它正在工作。我认为问题正在发生在 dir 现在它已解决。以上是关于使用 perl 的 rename 函数重命名 zip 文件名 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章