批量用数字重命名图像?

批量用数字重命名图像?

可能重复:
一键重命名大量文件

我有数千张图像,希望按数字批量重命名。

问题是我保存的所有几十张图片都有这样的 osbscure 文件名截屏

我希望输出类似于:0001、0002 或 001、002 等

实现/完成这一目标的最佳方法是什么?

答案1

你使用的是 Windows,所以你可以这样做汉密尔顿C壳

@ n = 1
foreach i ( *.jpg )
   mv $i $printf("%04d.jpg", n++)
end

免费试用版就是你所需要的。(完全披露:我是作者。)

答案2

假设是纯 Windows(即没有 Cygwin 等),并且您不想或无法安装任何东西来执行此操作,我建议使用 Visual Basic 脚本来完成此工作。您可以尝试以下操作:

 targetDir = WScript.Arguments.Item(0)
 WScript.Echo "Operating on files in " + targetDir
 Set fsh = CreateObject("Scripting.FileSystemObject")
 Set targetFiles = fsh.GetFolder(targetDir).Files
 ZeroPadWidth = Len(targetFiles.Count)
 FileNumber   = 0
 For Each File In targetFiles
   FileNumber = FileNumber + 1
   NewName = targetDir & "\"
   For I = 1 To ZeroPadWidth - Len(FileNumber)
     NewName = NewName & "0"
   Next
   NewName = NewName & FileNumber
   WScript.Echo "Renaming " & targetDir & "\" & File.Name & ": " & NewName
   File.Move(NewName)
 Next

将其放入文件中,例如“rename.vbs”;然后,从命令行调用它,以目标目录作为唯一参数,如下所示:

 c:\Users\Username\Desktop> cscript rename.vbs "c:\target\directory"

它将生成按数字排序并在左侧填充零的文件名;如果您的目录中有一千个文件,那么您将获得从 0001、0002...0999、1000 范围的名称。

不保证,但它应该能满足您的需要。如果没有,请告诉我。(并为目标目录制作一个安全副本以防万一;我对此进行了一些测试,应该没问题,但总有可能存在我没有发现的错误。)

希望这能有所帮助!(如果有帮助的话,我希望你能认真考虑 Shinrai 关于接受率的观点。)

相关内容