Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Arrays 批处理数组添加_Arrays_Batch File_Addition - Fatal编程技术网

Arrays 批处理数组添加

Arrays 批处理数组添加,arrays,batch-file,addition,Arrays,Batch File,Addition,嗨,我正在尝试添加到数组,但我的代码是错误的 @echo off setlocal enabledelayedexpansion set /p filas=ingrese el numero de filas: set /p columnas=ingrese el numero de columnas: for /l %%i in (0,1,%filas%) do ( for /l %%j in (0,1,%columnas%) do ( set array[%%i,%

嗨,我正在尝试添加到数组,但我的代码是错误的

@echo off
setlocal enabledelayedexpansion

set /p filas=ingrese el numero de filas: 
set /p columnas=ingrese el numero de columnas: 

for /l %%i in (0,1,%filas%) do (
  for /l %%j in (0,1,%columnas%) do (   
    set array[%%i,%%j]=!random! 
    set array2[%%i,%%j]=!random!
  )
)

set array array2
pause

echo addition
for /l %%i in (0,1,%filas%) do (
  for /l %%j in (0,1,%columnas%) do (   
    set /a arreglo[%%i,%%j]= !array[%%i,%%j]!+!array2[%%i,%%j]!    
  )
)
set arrreglo
pause

exit

第一个问题:用非分隔符字符替换每个
变量[%%i,%%j]
中的每个
。分隔符为空格、制表符;及,。我建议在这种情况下使用
(如Compo所述)

第二个问题:显示添加结果的
set arrreglo
语句包含太多的
r
s(打字错误)


没有必要包括!在
set/a…+…
语句中,
set/a
语法允许不加修饰地使用变量名称。(eg)
array[…]
的值在循环中没有变化这一事实应该表明!不太可能是必需的。

第一个问题:用非分隔符字符替换每个
变量[%%i,%%j]
中的每个
。分隔符为空格、制表符;及,。我建议在这种情况下使用
(如Compo所述)

第二个问题:显示添加结果的
set arrreglo
语句包含太多的
r
s(打字错误)


没有必要包括!在
set/a…+…
语句中,
set/a
语法允许不加修饰地使用变量名称。(eg)
array[…]
的值在循环中没有变化这一事实应该表明!不太可能是必需的。

根据我的评论,修复您的打字错误,删除不必要的
集合/A
,并向用户输入添加一些验证,下面是一个示例:

@Echo关闭
SetLocal EnableDelayedExpansion
:AskInput
Rem确保变量名未定义。
对于%%I In(filas testf columns testc),请设置“%%I=”
Rem请求filas的数字输入并验证其有效性。
设置/P“filas=入口el filas编号:”
Set/A“testf=!filas!”2>num | | Set“testf=”
如果不是“!testf!”==“!filas!”转到AskInput
Rem要求为columnas输入数字,并验证是否有效。
设置/P“列数=列数入口”:
Set/A“testc=!columnas!”2>num | | Set“testc=”
如果不是“!testc!”==“!columnas!”转到AskInput
Rem未定义多余变量。
对于/F“Delims=”%I In('Set test 2^>NUL')Do Set“%I=”
Rem定义数组/数组2变量。
对于/F“Delims=”('Set array 2^>NUL')中的%%I,请执行设置“%%I=”
对于/L%%I In(0,1,%filas%)而言,对于/L%%J In(0,1,%columnas%
)是否设置/A数组[%%I\uj]=!随机的阵列2[%%I_J]=!随机的
Rem显示数组/数组2变量及其值。
集合数组
暂停
回声加法
Rem定义arreglo变量。
对于/F“Delims=”%%I In('Set arreglo 2^>NUL'),请设置“%%I=”
对于/L%%I In(0,1,%filas%)而言,对于/L%%J In(0,1,%columnas%
)Do Set/A arreglo[%%I_uj]=数组[%%I_J]+array2[%%I_J%%]
Rem显示arreglo变量及其值。
设置arreglo
暂停

根据我的评论,修复您的打字错误,删除不必要的
集合/A
,并向用户输入添加一些验证,下面是一个示例:

@Echo关闭
SetLocal EnableDelayedExpansion
:AskInput
Rem确保变量名未定义。
对于%%I In(filas testf columns testc),请设置“%%I=”
Rem请求filas的数字输入并验证其有效性。
设置/P“filas=入口el filas编号:”
Set/A“testf=!filas!”2>num | | Set“testf=”
如果不是“!testf!”==“!filas!”转到AskInput
Rem要求为columnas输入数字,并验证是否有效。
设置/P“列数=列数入口”:
Set/A“testc=!columnas!”2>num | | Set“testc=”
如果不是“!testc!”==“!columnas!”转到AskInput
Rem未定义多余变量。
对于/F“Delims=”%I In('Set test 2^>NUL')Do Set“%I=”
Rem定义数组/数组2变量。
对于/F“Delims=”('Set array 2^>NUL')中的%%I,请执行设置“%%I=”
对于/L%%I In(0,1,%filas%)而言,对于/L%%J In(0,1,%columnas%
)是否设置/A数组[%%I\uj]=!随机的阵列2[%%I_J]=!随机的
Rem显示数组/数组2变量及其值。
集合数组
暂停
回声加法
Rem定义arreglo变量。
对于/F“Delims=”%%I In('Set arreglo 2^>NUL'),请设置“%%I=”
对于/L%%I In(0,1,%filas%)而言,对于/L%%J In(0,1,%columnas%
)Do Set/A arreglo[%%I_uj]=数组[%%I_J]+array2[%%I_J%%]
Rem显示arreglo变量及其值。
设置arreglo
暂停

你好。请在您的帖子中重新设置代码部分的格式。使每个人都更容易阅读和帮助。您的代码已相应地放入代码框中。顺便说一句,
set array
将输出以array开头的每个变量名,以及它的关联值,因此添加
array2
是不必要的,我想这是无效的。最佳实践是,变量名只包括字母数字字符和下划线
字符。包含空格和其他特殊字符的变量名很难使用,应该避免使用。您的代码中似乎也有输入错误:
set arrreglo
当您的变量名为
arreglo
@PosiVargas时,请先阅读,然后再考虑是否有一个已发布的答案解决了您发布的问题。谢谢,你好。请在您的帖子中重新设置代码部分的格式。使每个人都更容易阅读和帮助。您的代码已相应地放入代码框中。顺便说一句,
set array
将输出以array开头的每个变量名,以及它的关联值,因此添加
array2
是不必要的,我想这是无效的。最佳实践是,变量名只包括字母数字字符和下划线
字符。包含空格和其他特殊字符的变量名很难使用,应该避免使用。您的代码中似乎也有输入错误:
set arrreglo
当您的变量名为
arreglo
@PosiVargas时,请先阅读,然后再考虑是否有一个已发布的答案解决了您发布的问题。非常感谢。