批量重命名日期文件

时间:2012-03-11 14:29:02

标签: batch-file terminal rename

我渲染了140000帧来制作它们的电影。 但是,它从1.png开始,如果它已经从000001.png开始会更好,以便在最终剪切快递中导入时保持订单良好。

我以前有一个程序r-name,但它基于power-pc,所以它不再起作用了。 此外,该程序甚至还有一批300个文件非常糟糕,所以我想最好使用终端。

我已经看过重命名的示例,但大多数用于更改扩展的示例或更改前缀。

有人可以用正确的终端脚本帮助我吗?我需要尽快完成这个项目,否则我会重新渲染它,但需要15个小时才能完成。

3 个答案:

答案 0 :(得分:2)

效率不高,但因为你只需要运行一次:

for i in `seq 1 140000`; do
  mv $i.png `printf %06d $i`.png
done

编辑:我认为(可能是错误的)您使用的是Linux。这不适用于Windows。

编辑:是的,这应该适用于Mac OS X.您可以将其保存到文件中,而不是在提示符中键入这些行。通常,您可以使用rename.sh这样的名称保存此类文件。然后您可以在终端上运行它,如下所示:

sh rename.sh

如果您不确定,可以将mv行更改为:

echo mv $i.png `printf %06d $i`.png

这将在屏幕上打印出将要执行的命令。然后,如果一切正常,则将其更改回原始状态并再次运行。

如果文件数不同,只需将140000替换为最后一个文件的编号。

答案 1 :(得分:1)

for i in *.png
do
    name=${i%.png}
    [[ $name =~ ^[0-9]+$ ]] && mv $i "$(printf '%06d' $name).png"
done

答案 2 :(得分:1)

如果您使用的是Windows

@echo off
setlocal enableDelayedExpansion
for %%F in (*.png) do (
  set "name=00000%%~nF"
  ren "%%F" "!name:~-6!.png"
)
相关问题