如何通过删除文件名中最后一次出现 "by" 和之后的所有内容来重命名几千个文件

How to rename a few thousand files by removing everything including and after the last occurance of "by" in the filename

我有几千个文件,文件的文件名中包含作者姓名。这造成的主要问题是文件名变得太长,因为所有作者都被提及并且由于 windows 文件名长度限制而无法将它们移动到不同的文件夹。我需要通过删除 "by " 最后一次出现后的所有内容来重命名文件,包括 "by " 本身。

重命名这么多文件的唯一方法是编写某种程序。最快的方法是什么?

您可以使用 PowerShell 脚本重命名多个文件。 试一试:

$cur_dir = pwd
$files = Get-ChildItem $cur_dir
foreach($file in $files){
    $rev_name = $file.name
    $rev_name = $rev_name.ToCharArray()
    [Array]::Reverse($rev_name)
    $rev_name = -join $rev_name
    $indi = $rev_name.IndexOf("yb")
    if($indi -ge 0){
        $start_ind = $rev_name.length - $indi-2
        $final_name = $file.name.substring(0,$start_ind)
        Rename-Item -Path $file.name -NewName $final_name
      }
  }

希望对您有所帮助。