batch:通过用零填充数字来重命名文件

时间:2017-06-30 14:14:00

标签: windows batch-file rename

我想重命名一些名为initialy的文件:

setlocal enableextensions enabledelayedexpansion
set idx="xx"
for /l %%x in (0, 1, 1) do (
    Set "Pattern=KIT%%x_"
    Set "Replace=KIT0%%x_"
    for /r %%# in (*!Pattern!*) do (
        Set "File=%%~nx#"
        echo "!File!"
        rem Ren "%%#" "!File:%Pattern%=%Replace%!"
        )
    )
endlocal

我写了这个批处理文件,但它没有工作,它说有另一个同名文件或文件找不到!我没有明白这一点!请帮帮我

'№№№'

1 个答案:

答案 0 :(得分:1)

虽然你使用延迟扩展,但%Replace%已经在需要延迟扩展的区域,所以你需要使用不同的方法两次:

setlocal enableextensions enabledelayedexpansion
set idx="xx"
for /l %%x in (0, 1, 1) do (
    Set "Pattern=KIT%%x_"
    Set "Replace=KIT0%%x_"
    for /r %%# in (*!Pattern!*) do (
        Set "File=%%~nx#"
        echo "!File!"
        Call Echo Ren "%%#" "%%File:!Pattern!=!Replace!%%"
        )
    )
endlocal

如果输出看起来OK,则删除Call和Ren之间的回声。