1
我正在使用Windows命令提示符腳本從不同的.txt文件中讀取值。首先它是有效的,但後來該陣列似乎是空的。Windows批處理:延遲擴展後文件中的數據消失
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 /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-loops之前或之後的EndLocal也無濟於事。
它沒有幫助,還打印 「ECHO處於關閉狀態。」 – fortranondebian 2013-05-06 11:26:24
做了一個編輯... – Endoro 2013-05-06 11:27:06
它的工作原理,謝謝! 我也不得不減少n和j 1,但這是一個不同的故事。 – fortranondebian 2013-05-06 11:34:58