如何在循环中添加自动编号

时间:2017-01-14 19:06:07

标签: batch-file

我在一个包含4个文件的文件夹中循环:

image1
image2
image3
image4
for %%f in (*.jpg) do (
    echo %%~nf
)

我想在文件旁边添加数字,直到循环结束。

我希望我的输出是这样的:

image11
image22
image33
image44

enter image description here

echo get the name of the files
for %%f in (*.jpg) do (
set count+=1
echo total= %count%
magick convert %%~nf.jpg -crop 2x2-40-20@ +repage +adjoin image-%%d.jpg
rem    echo %%~nf
              set /a count+=1
               echo %%~nf!count!
echo total= %count%
    )
pause

2 个答案:

答案 0 :(得分:0)

这将为您提供您所追求的结果。

 @echo off
 setlocal enabledelayedexpansion
 for /f "tokens=*" %%f in ('dir /b *.jpg') do (
            set /a count+=1
            echo %%~nf!count!
    )
    echo.
    echo Total = %count%
    echo.
    pause

答案 1 :(得分:0)

南希你的代码错过了行setlocal ...如果你的图片路径包含空格,请更好地双引号。

@Echo off
SetLocal EnableExtensions EnableDelayedExpansion
Set count=0
:: get the name of the files
for %%f in (*.jpg) do (
  set /A count+=1
  echo convert "%%~ff" to "%%~dpnf-!count!%%~xf"
  magick convert "%%~f.jpg" -crop 2x2-40-20@ +repage +adjoin "%%~dpnf-!count!%%~xf"
)
echo total= !count!
pause

在此处了解for变量修饰符for /?ss64.com/syntax-args
set /A count+=1

中缺少修改 / A.