我正在使用Windows命令提示符脚本从不同的.txt文件读取值。 首先它是有效的,但后来这个arrays似乎是空的。
analyze.bat:
@echo off setlocal EnableDelayedExpansion set ID=P8 set comptype=Link set pattern=(700 710 720 730 740 750 760 770 780 790 ) set n=0 for %%i in %pattern% do ( set j=0 for /f "tokens=1-5" %%a in (.\results\%%i.txt) do ( if %%a==%comptype% if %%b==Results (set t=%%d) if %%a==%ID% ( set data[%n%][%j%]=%%b echo !data[%n%][%j%]! <-- This is working set /aj=!j!+1 ) ) set /an=!n!+1 ) for /l %%o in (0, 1, %n%) do ( for /l %%k in (0, 1, %j%) do ( echo %data[%%o][%%k]% <-- This is not working ))
第二个回声只是打印:“ECHOclosures”,这导致我相信这个variables是空的。 这可能与“数据”的延迟扩展有关吗? 使用! 而不是%为第二个回声不会改变任何东西。 最后两个for循环之前或之后的EndLocal也无济于事。
尝试这个:
set "data[!n!][!j!]=%%b" ... ... echo !data[%%o][%%k]!