2015-07-22 122 views
1

我有一个文件包含三张图片,他们命名为ape.jpg,123.jpg,zoo.jpg 我想写一个批处理文件,它可以将所有三张图片重命名为数字顺序。如何编写批处理文件以在特定文件夹内以数字顺序重命名文件?

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

我真的不关心那些照片的原始名称和订单,我知道这可以在任何版本的Windows通过手动来完成进入该文件夹并选择所有这些,重命名其中的一个(1),其余的图片将自己命名为数字。但我想用批处理文件来做到这一点。

回答

2

你应该可以用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

+0

这种方法(普通'for'命令)可能会导致一些文件被处理(重命名)超过一次,具体取决于重命名文件插入'* .jpg'通配符的位置。为了避免这个问题,你应该在('dir/B * .jpg')...'中使用'for/F %% a'。 – Aacini

相关问题