如何使用for循环插入命令行参数?

时间:2016-02-28 23:22:45

标签: windows batch-file command-line cmd imagemagick

我有使用批处理文件作为参数插入的文件。这些文件编号为' image-1.jpg' '图像2.JPG' '图像3.JPG'我想自动添加它们,但我不确定我做错了什么。这就是我想要做的事情:

montage -mode concatenate^
 FOR /L %%A IN (1,1,8) DO (ECHO "folder 1"/image-%%A.jpg^)^
 -tile 4x2^
 -geometry +0+0^
 montage.jpg

显然我做错了,因为CMD认为FOR是正在执行的命令的一部分。有没有办法像这样嵌入FOR循环?

编辑:如果我手动输入,命令应如下所示:

montage -mode concatenate^
 "folder 1"/image-1.jpg^
 "folder 1"/image-2.jpg^
 "folder 1"/image-3.jpg^
 "folder 1"/image-4.jpg^
 "folder 1"/image-5.jpg^
 "folder 1"/image-6.jpg^
 "folder 1"/image-7.jpg^
 "folder 1"/image-8.jpg^
 -tile 4x2^
 -geometry +0+0^
 montage.jpg

2 个答案:

答案 0 :(得分:0)

For /l %%A in (1,1,8) do montage -mode concatenate "folder 1"/image-%%A.jpg" -tile 4x2 -geometry +0+0 montage.jpg

答案 1 :(得分:0)

你关闭;您需要在使用montage命令之前构建字符串。另外,因为您正在更新for循环内的变量,所以需要延迟扩展。

@echo off
setlocal enabledelayedexpansion

for /l %%A in (1,1,8) do set files=!files! "folder 1"/image-%%A.jpg
montage -mode concatenate !files! -tile 4x2 -geometry +0+0 montage.jpg