我可以在 FOR 循环中添加 "Counter" 吗?

Can I add a "Counter" within a FOR loop?

我有一个小的批处理文件(见下文),它执行 REM 语句所说的。

执行时,它会在处理过程中依次显示每个文件名(带有进度条(某种),因为文件 're-written' 到磁盘)但我也希望它显示一个“计数器” (从 1 开始)随着处理的每个文件递增,因此当处理完最终文件时,计数器将显示 总数 的文件数量 已处理

我可以做任何简单改变来实现这个目标吗? (我不是码农,批处理文件是我失联的人给我的。)

REM --ooOO  This adds c.365ms silence to all mp4 video files in the folder (adding 364 bytes to file size)  OOoo--

for %%a in (*.mp4) do mp4box "%%a" -add 0.2sSilenceM.mp3
pause

实现计数器非常简单:

setlocal enabledelayedexpansion
set counter=0
for %%a in (*.mp4) do (
  set /a counter+=1
  echo processing file !counter!: %%a
  mp4box "%%a" -add 0.2sSilenceM.mp3
)
echo total processed files: %counter%

您需要 才能在循环内使用计数器。