答案1
答案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 关于接受率的观点。)