我正在尝试创建一个简单的批处理文件,以便从其目录中的所有文件中生成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循环。
答案 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个文件。