我有一个智能手机导入的包含许多图像(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.如果我重新启动脚本,它会跳过一个数字,但不同的数字。
我尝试从文件名中删除下划线,一切正常,但实际上我需要下划线。
有什么想法吗? 谢谢!
答案 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
处理列表。