在 Windows 中重命名目录中所有文件的简便方法

在 Windows 中重命名目录中所有文件的简便方法

有没有简单的方法可以重命名目录中的所有文件?PowerShell 是可行的方法吗?

我想从这个开始:

c:\family_pics\
   img123.jpg
   img124.jpg

更改为:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

理想情况下,我想在目录上运行一个脚本,该脚本将根据当前目录的名称重命名所有文件,同时保留扩展名,并以递归方式遍历目录树。

答案1

基于一切可以在一行 PowerShell 中完成(就像所有事情也可以在一行 Perl 中完成一样),这是单个目录的 PS 代码。

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

要递归执行此操作,您需要将上述内容包装在一个函数中,然后在树中的每个目录上调用它。如果您需要使用正则表达式,您还可以将格式字符串替换为更复杂的格式。

答案2

这有点不专业,但我已经这样做了 12 年,而且我做得相当快:

  • 在 c:\family_pics 中打开命令提示符并输入dir >> dir.xls
  • 在 Excel 中打开 dir.xls 文件
  • 突出显示第一列,选择“文本到列”,并在空格字符上添加列分隔符(忽略重复项)
  • 你现在有了一个漂亮的表格,其中包含当前文件名、文件大小等
  • 在文件名前添加新列“ren”
  • 在文件名后添加一个新列,然后使用您想要的任何 Excel 函数来生成新文件名。对于您来说,如果您输入前两个文件名,然后双击单元格的右下角,Excel 将自动检测模式并生成其余名称。
  • 另存为ren.bat
  • 运行刚刚创建的批处理文件,它将重命名所有目录

虽然可能不是很明显,但 Excel非常非常适合这类任务,因为您可以使用任何您想要的公式来生成新文件,使用来自现有文件的输入(时间戳、文件名、大小等)。

答案3

虽然您可以使用批处理文件来执行操作,但我发现,拥有更多的控制、选项等以及对即将发生的事情的直观线索会更好。

有一款免费工具叫 CKRename。原作者的网站似乎已经消失了,但这款应用功能齐全,而且很受欢迎(我已经用了 8 年了)。 下载 CKRename

以下是实际操作的截图 在此处输入图片描述

答案4

重命名器: http://www.den4b.com/

另请参阅: 如何在 Windows 中从文件选择中重命名部分文件名?

将包含图片的文件夹放入 ReNamer(默认情况下将递归添加子文件夹)。如果要保持顺序,请单击“名称”列以按文件名排序。特殊元标记将允许您使用父文件夹名称进行重命名。使用以下重命名规则:

  1. 从位置 1 删除直到结尾(跳过扩展)
  2. 插入“:File_FolderName:_”作为前缀(跳过扩展名)
  3. 从 1 开始增量序列化,步骤 1 重复 1 作为后缀(跳过扩展)

在此处输入图片描述

相关内容