设置多维数组批处理

Ing*_*dak 1 windows arrays batch-file multidimensional-array

我正在以这种方式创建多维数组:

set Name[0]="name1"
set Id[0]=1234
set Action[0]=false

set Name[1]="name2"
set Id[1]=5678
set Action[1]=true
Run Code Online (Sandbox Code Playgroud)

然后循环:

set "x=0"

:SymLoop
if defined Id[%x%] (
if defined Action[%x%] (
if defined Name[%x%] (

call set "name=%%Name[%x%]%%"
call set "id=%%Id[%x%]%%"
call set "action=%%Action[%x%]%%"

:: use name, id, action

)
set /a "x+=1"
GOTO :SymLoop
)
)
)
Run Code Online (Sandbox Code Playgroud)

是否有一些不同的方法可以在不手动设置每个键的情况下创建多维数组?当我定义数组和更改顺序(键号)时,我需要重新排列整个数组以获得正确的“键值”。

有没有像

set myArray ["name1", 1234, false]
set myArray ["name2", 5678, true]
Run Code Online (Sandbox Code Playgroud)

然后在循环中迭代并定义 - “name1”为“name”变量 - 1234 设置为“id”变量 - “false”为“action”变量

在循环中?减少“_x”变量定义的使用

注意:我是 Windows 批处理的新手

Ger*_*ard 5

因此,只需将您的数组添加到文件中:

Name1,1234,false
Name2,4567,true
Run Code Online (Sandbox Code Playgroud)

那么你的批次:

for /f "tokens=1-3 delims=," %%i in (newfile.txt) do (
 echo name=%%i
 echo id=%%j
 echo action=%%k
)
Run Code Online (Sandbox Code Playgroud)