批处理:将TXT行解析为数组

时间:2015-05-22 17:54:55

标签: batch-file

我希望将TXT文件中的行读入Array结构,以便在我正在使用的批处理文件中使用(读取当前硬编码的配置元素)。

一些注释/假设:

  1. .TXT文件与.BAT文件在同一目录中
  2. 只有2列要解析,行数未知
  3. Col1& Col2数据可以包含空格,但不包含特殊字符
  4. .TXT文件的格式/分隔符可以是此任务的方便之处: 例:Col1 | COL2
  5. 我只想找几个让我入门的指示。

    谢谢!

    标记

1 个答案:

答案 0 :(得分:3)

二维数字索引阵列的模拟:

textfile.txt的内容:

var 1,val 1
var 2,val 2
var 3,val 3

test.bat的内容:

@echo off
setlocal enabledelayedexpansion

set idx=0

for /f "usebackq tokens=1* delims=," %%I in ("textfile.txt") do (
    set "var[!idx!][0]=%%~I"
    set "var[!idx!][1]=%%~J"
    set /a idx += 1
)

set var

结果输出:

var[0][0]=var 1
var[0][1]=val 1
var[1][0]=var 2
var[1][1]=val 2
var[2][0]=var 3
var[2][1]=val 3

或者您可以模拟关联数组,如果您处理配置数据,其键值对格式可能更有意义。

关联数组的模拟:

textfile.txt的内容:

key 1=val 1
key 2=val 2
key 3=val 3

test.bat的内容:

@echo off
setlocal

for /f "usebackq tokens=1* delims==" %%I in ("textfile.txt") do (
    set "config[%%~I]=%%~J"
)

set config

结果输出:

config[key 1]=val 1
config[key 2]=val 2
config[key 3]=val 3