批量循环增量值ENABLEDELAYEDEXPANSION

时间:2016-05-02 00:08:46

标签: batch-file increment

我正在尝试创建一个简单的批处理文件,以便从其目录中的所有文件中生成7zip-archives。

我希望7zip档案能够获得 a01.7z a02.7z a03.7z 等名称......

显然在批量循环中递增值并不容易。

setlocal ENABLEDELAYEDEXPANSION解决方案无法在我的计算机上运行(Windows 10,64位)

有人建议将增量代码放在子程序中:

set /a counter=0
for %%i in (*.*) do (
    call :pass2
    goto :cont
    :pass2
        set /a counter=%counter%+1
        goto :EOF
    :cont
        "c:\Program Files\7-Zip\7z.exe" a a%counter% "%%i"
)

这不起作用,因为DOS不再理解最终的“%% i”,只输出“%i”。

请教我如何使用计数器批量制作for循环。

2 个答案:

答案 0 :(得分:2)

这是生成两位数的最简单方法,左数为零:

@echo off
setlocal EnableDelayedExpansion

set /A counter=100
for %%i in (*.*) do (
   set /A counter+=1
   "c:\Program Files\7-Zip\7z.exe" a a!counter:~1! "%%i"
)

答案 1 :(得分:0)

setlocal enabledelayedexpansion
set /a counter=0
for %%i in (*.*) do (
        set /a counter=!counter!+1
        @echo "c:\Program Files\7-Zip\7z.exe" a a!counter! "%%i"
)

每个zip增加1个文件。