【问题标题】:How to write a batch file to rename files in numerically order within a particular folder?如何编写批处理文件以在特定文件夹中按数字顺序重命名文件?
【发布时间】:2015-07-22 11:32:45
【问题描述】:

我有一个包含三张图片的文件,它们分别命名为 ape.jpg、123.jpg、zoo.jpg 我想写一个批处理文件,它可以将三张图片全部重命名为数字顺序。

ape.jpg -> (1).jpg
123.jpg -> (2).jpg
zoo.jpg -> (3).jpg

我并不关心这些图片的原始名称和顺序,我知道这可以在任何版本的 Windows 中通过手动进入该文件夹并全部选择它们,将其中一个重命名为 (1) 来完成,其余图片将按数字顺序排列。但我想用批处理文件来做到这一点。

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    您应该能够使用 FOR 循环和计数器变量来执行此操作。 for 将遍历 dir 的输出以获取完整的文件列表,然后按顺序重命名它们。

    setlocal enabledelayedexpansion
    set i=1
    for /F %%a in ('dir /B *.jpg') do (
      echo ren "%%a" "(!i!).jpg"
      set /a i+=1
    )
    endlocal
    

    这不能保证它们出现的顺序,但它应该对当前目录中的所有 *.jpg 文件进行操作。运行它,它将向您显示它将使用的重命名命令。要使其真正重命名文件,请删除带有ren 的行之前的echo

    【讨论】:

    • 这种方法(纯for命令)可能会导致某些文件被多次处理(重命名),具体取决于重命名文件在*.jpg通配符中插入的位置。你应该使用for /F %%a in ('dir /B *.jpg') ... 来避免这个问题。
    • 而如果要保留文件名a.txt -> 001 a.txt。那我该怎么办?
    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 2010-10-12
    • 2011-04-18
    • 2016-06-28
    • 2013-12-14
    • 1970-01-01
    相关资源
    最近更新 更多