(EDITED)如何从文本文件中读取数据并将其中的某些部分分配给变量?例如,在下面的几行中,我想将数据分配给指定的变量,但忽略标题行,序言词“DATA:”和任何引号。使用FINDSTR在FOR循环中设置变量
HEADER (ignore)
DATA: "set text inside quotes to VAR1"
DATA: "set text inside quotes to VAR2"
DATA (etc.)
我正在使用的代码是:
setlocal enabledelayedexpansion
set COUNT=0
for /f "usebackq delims=" %%a in ("data.txt") do (
set "INPUT=%%a"
set /a COUNT=!COUNT!+1
echo !INPUT! | findstr /i /c:"HEADER" > nul
if errorlevel 1 (
set "INPUT=!INPUT:DATA:=!"
set "INPUT=!INPUT:"=!"
set VAR!COUNT!=!INPUT!
echo Variable !COUNT! = !VAR!!COUNT!
)
)
我的预期输出是
Variable 1 = set text inside quotes to VAR1
Variable 2 = set text inside quotes to VAR2
但我得到的是
Variable 2 = 2
Variable 3 = 3
Variable 4 = 4
我在做什么错?
请向我们展示您现有的代码。 – Squashman
Findstr不会迭代,它会对符合给定条件的输入行进行过滤,对于/ f可能会迭代过滤后的行。 [SO]这里每天都有很多例子。 – LotPings