我正在使用 Windows 命令提示符脚本从不同的 .txt 文件中读取值。首先它可以工作,但后来数组似乎是空的。
分析.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 /a j=!j!+1 )
)
set /a n=!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
))
第二个回声只是打印:“ECHO 已关闭。”,这让我相信该变量此时为空。会不会与“数据”的延迟扩展有关?使用 !而不是 % 用于第二个回声不会改变任何东西。在最后两个 for 循环之前或之后的 EndLocal 也无济于事。