我有使用批处理文件作为参数插入的文件。这些文件编号为' 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
答案 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