Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 循环和行继续的Windows批处理文件_Variables_Batch File_For Loop_Windows 7_Imagemagick - Fatal编程技术网

Variables 循环和行继续的Windows批处理文件

Variables 循环和行继续的Windows批处理文件,variables,batch-file,for-loop,windows-7,imagemagick,Variables,Batch File,For Loop,Windows 7,Imagemagick,我需要一个脚本,用于填充3×3网格中5个块的所有可能组合。所以我想我可以使用ImageMagick进行着色,使用txt文件进行输入。文本文件每行包含一个数字,该数字显示应为哪个块着色。5个数字构成一个可能的组合 我使用for循环逐行读取我的txt文件。一个变量(称为A)递增,当它达到5时重置为0,另一个变量(称为n)递增,这会更改输出文件的名称。因为每次新组合开始时我都需要重新加载原始图像,所以我使用另一个变量(名称)在原始图像和每个组合的图片之间切换 这是我第一次编写批处理文件。所以我可能还没

我需要一个脚本,用于填充3×3网格中5个块的所有可能组合。所以我想我可以使用ImageMagick进行着色,使用txt文件进行输入。文本文件每行包含一个数字,该数字显示应为哪个块着色。5个数字构成一个可能的组合

我使用for循环逐行读取我的txt文件。一个变量(称为A)递增,当它达到5时重置为0,另一个变量(称为n)递增,这会更改输出文件的名称。因为每次新组合开始时我都需要重新加载原始图像,所以我使用另一个变量(名称)在原始图像和每个组合的图片之间切换

这是我第一次编写批处理文件。所以我可能还没有完全理解行延续和变量是如何工作的,因为我的脚本没有生成任何输出

setlocal ENABLEDELAYEDEXPANSION
set a=0
set n=0
for /F %%G in (test.txt) do ^
set /A a=a+1 & ^
if !a!==5 set a=0  & set /A n=n+1 & ^
if !a!==0 set name=original.png else set name=output_!n!.png ^
if %%G == 1 magick convert -fill blue -draw "color 50, 50 floodfill" %name% output_!n!.png ^
if %%G == 2 magick convert -fill blue -draw "color 150, 50 floodfill" %name% output_!n!.png ^
if %%G == 3 magick convert -fill blue -draw "color 250, 50 floodfill" %name% output_!n!.png ^
if %%G == 4 magick convert -fill blue -draw "color 50, 150 floodfill" %name% output_!n!.png ^
if %%G == 5 magick convert -fill blue -draw "color 150, 150 floodfill" %name% output_!n!.png ^
if %%G == 6 magick convert -fill blue -draw "color 250, 150 floodfill" %name% output_!n!.png ^
if %%G == 7 magick convert -fill blue -draw "color 50, 250 floodfill" %name% output_!n!.png ^
if %%G == 8 magick convert -fill blue -draw "color 150, 250 floodfill" %name% output_!n!.png ^
if %%G == 9 magick convert -fill blue -draw "color 250, 250 floodfill" %name% output_!n!.png
Pause

以下是仅重新格式化的代码(新的第一行除外):


我已更新了代码,以解决名称变量的一个主要问题。

以下是您的代码,仅重新格式化(新的第一行除外):


我已经更新了代码,以修复名称变量的一个主要问题。

还有一些其他错误(逻辑),但由于您出色的格式设置,修复它们很容易!现在可以了。修复了主要问题。还有一些其他错误(逻辑),但多亏了你出色的格式,修复起来很容易!现在可以了。解决了主要问题
@echo off
setlocal ENABLEDELAYEDEXPANSION
set a=0
set n=0
for /F %%G in (test.txt) do (
    set /A a=a+1
    if !a!==5 (set a=0)
    set /A n=n+1
    if !a!==0 (set name=original.png) else (set name=output_!n!.png)
    if %%G==1 (magick convert -fill blue -draw "color 50, 50 floodfill" !name! output_!n!.png)
    if %%G==2 (magick convert -fill blue -draw "color 150, 50 floodfill" !name! output_!n!.png)
    if %%G==3 (magick convert -fill blue -draw "color 250, 50 floodfill" !name! output_!n!.png)
    if %%G==4 (magick convert -fill blue -draw "color 50, 150 floodfill" !name! output_!n!.png)
    if %%G==5 (magick convert -fill blue -draw "color 150, 150 floodfill" !name! output_!n!.png)
    if %%G==6 (magick convert -fill blue -draw "color 250, 150 floodfill" !name! output_!n!.png)
    if %%G==7 (magick convert -fill blue -draw "color 50, 250 floodfill" !name! output_!n!.png)
    if %%G==8 (magick convert -fill blue -draw "color 150, 250 floodfill" !name! output_!n!.png)
    if %%G==9 (magick convert -fill blue -draw "color 250, 250 floodfill" !name! output_!n!.png)
)
Pause