如何将文件重命名为文件夹名称+批量增加的数字?我收到名称重复错误

问题描述 投票:0回答:1

我一直试图创建一个批处理文件来将文件重命名为:

“文件夹名_01.jpg,文件夹名_02.jpg等...”

但是我的输出将第一个文件重命名为“%〜dp00.jpg”,其余的返回错误

“存在重复的文件名,或者找不到文件”

我的代码:

@echo off
set /a count = 0

for %%a in (*.jpg) do (
    set /a count+=1
    ren "%%a" "%%~dp0_%count%.jpg" 
    )

pause

我不明白为什么count变量没有在每个条目中加1,并且文件被重命名为“%〜dp0 + count + .ext”而不是其“文件夹名称+ count + .ext”]

batch-file command-line duplicates file-rename
1个回答
1
投票

您的问题可以通过在嵌套的for循环中,捕获目录名称中使用延迟扩展,用于增量变量来解决。

示例:

@Set "count=0"
@For /F "Delims=" %%I In ('Dir /B/S/A-D-S "*.jpg" 2^>NUL')Do @(
    For %%J In ("%%~pI.")Do @(Set /A count+=1
        SetLocal EnableDelayedExpansion
        Ren "%%I" "%%~nxJ_!count!%%~xI"
        EndLocal))
@Pause
© www.soinside.com 2019 - 2024. All rights reserved.