批量将文件重命名为父文件夹的名称

批量将文件重命名为父文件夹的名称

我有大量(约 150,000 个)tiff 文件,它们都具有相同的文件名。由于它们所在的目录结构,它们是唯一的。

我想根据 tiff 文件所在的目录结构批量重命名它们,使它们变得唯一。

有人有实现这一目标的方法吗?

我正在使用 Windows Server 2012,因此使用 cmd 脚本、批处理文件或 Windows GUI 工具的解决方案将是完美的。

理想情况下,这就是我想要实现的,但如果我必须在最终文件名中包含更多或全部目录结构,这仍然会非常非常有帮助。

C:\A_001\B_0001\ABC\0001.tif->ABC.tif

C:\A_001\B_0001\JKL:\0001.tif -> JKL.tif

C:\A_001\B_0001\XYZ\0001.tif->XYZ.tif

C:\A_001\B_0002\123\0001.tif -> 123.tif

C:\A_001\B_0002\456\0001.tif -> 456.tif

C:\A_001\B_0002\789\0001.tif -> 789.tif

答案1

批量重命名实用程序,将“附加文件夹名称”设置为“前缀”或“后缀”,并可选择添加分隔符(Sep.),并将“级别”设置为新文件名中应包含文件上方的多少个目录。

如上所述配置的批量重命名实用程序 UI 的屏幕截图

您可以使用其其他重命名功能,例如“删除”、“替换”、“RegEx”,进一步修改原始文件的文件名。

答案2

您可以使用 VBScript 轻松完成此操作,如下所示(未测试!):

Const cRootDir = "here_to_start"
Const sFileToRename = "here_to_rename"
Set Fso = CreateObject("Scripting.FileSystemObject")
Dim oRootDir : Set oRootDir = Fso.GetFolder(cRootDir)

For Each subfolder In oRootDir
   For Each oFile in subfolder.Files
     If oFile.Name = sFileToRename  Then Fso.MoveFile oFile, subfolder & ".tif"
   Next
Next

你可以使用以下命令启动此脚本

cscript.exe 我的脚本

相关内容