Bat脚本重命名文件

时间:2014-06-09 14:53:35

标签: batch-file batch-rename

我有一个智能手机导入的包含许多图像(jpg格式)的文件夹,我想在team_#中重命名它们,其中#是一个不断增加的数字。所以我想要的是team_1.jpg,team_2.jpg,......

我做的是:

SET /A count=1
setlocal ENABLEDELAYEDEXPANSION
for %%j in (*.jpg) do (
REN "%%j" "team_!count!.jpg"
SET /A count=count+1)
endlocal

但结果很奇怪。它“错过”了一个数字!这意味着,例如我有team_1.jpg,team_2.jpg,...,team_7.jpg,team_9.jpg它跳过8.如果我重新启动脚本,它会跳过一个数字,但不同的数字。

我尝试从文件名中删除下划线,一切正常,但实际上我需要下划线。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

尝试代替

for(%.jpg)中的%% j(

for / f" delims =" %% j in(' dir / b / a-d * .jpg')do(

如果您 ECHO REN ... 而不是 REN 只是暂时的,然后批处理将只报告所需的重命名,但不执行它。删除 ECHO 以执行重命名

我认为发生的事情是ren正在将重命名为 team_8.jpg,然后将team_8.jpg重命名为team_somethingelse.jpg。

dir命令将构建一个.jpg名称列表,然后 for/f处理列表。