fileren.pl

来自「文件改名--包括子目录下文件」· PL 代码 · 共 40 行

PL
40
字号
print "Please input the to be deleted directory!\n";
$Directory=<STDIN>;
chop($Directory);
(-d $Directory) || die "Not a directory\n";
print "Input match pattern?\n";
$FromPattern=<STDIN>;
chop($FromPattern);
print "Input changed pattern?\n";
$ToPattern=<STDIN>;
chop($ToPattern);

&SearchDir($Directory,"50");

sub SearchDir{
  local($Dir,$Handle)=@_;
  my($FileName);
  if(opendir($Handle,$Dir)){
    print("Opening directory \"$Dir\"\n");
  }
  else{
    print("Can not open directory \"$Dir\"\n");
    #return(0);
  }
  chdir($Dir);
  while($FileName=readdir($Handle)){
    (($FileName eq ".")||($FileName eq ".."))&&next;
    if(-d $FileName){
      SearchDir($FileName,$Handle+1);
    }
    else{
      if($FileName=~/$FromPattern$/){
        $TmpName=$FileName;
        $TmpName=~ s/$FromPattern$/$ToPattern/;
        rename($FileName,$TmpName)?printf("Renamed file %s\n",$FileName):printf("Can not rename file %s --- %s\n",$FileName,$!);
      }
    }
  }
  chdir("..");
  closedir($Handle);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?