批量读取数组

时间:2015-01-09 12:52:31

标签: arrays batch-file

我有一个女巫.bat文件的问题 我有这样的事情:

@echo off
setlocal EnableDelayedExpansion

set arr[a]=1
set arr[b]=2

for /F "tokens=*" %%a in (somefile.txt) do (
set key=a
echo /!key!/ /!arr[%key%]!/
)

上面的代码无法正常工作。我的意思是键显示正确但值为!arr [%key%]!是空的(我不知道为什么)。

当我这样尝试时:

@echo off
setlocal EnableDelayedExpansion

set arr[a]=1
set arr[b]=2

set key=a

for /F "tokens=*" %%a in (somefile.txt) do (
echo /!key!/ /!arr[%key%]!/
)

以上代码工作正常。不知道为什么第一个代码不起作用,第二个工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

@echo off
setlocal EnableDelayedExpansion

set arr[a]=1
set arr[b]=2

for /F "tokens=*" %%a in (q27861004.txt) do (
 set key=%%a
 echo /!key!/ /!arr[%%a]!/
)

GOTO :EOF

我使用了一个名为q27861004.txt的文件,其中包含了我的测试数据。

a
b

您的问题是,%kay%在分析时进行评估,将%key%替换为当时的值,为空,因此也显示!arr[]!