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

Mar*_*ier 3 batch-file

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

一些注意事项/假设:

  1. 与 .BAT 文件位于同一目录中的 .TXT 文件
  2. 只有 2 列要解析,行数未知
  3. Col1 & Col2 数据可以包含空格,但不能包含特殊字符
  4. .TXT 文件的格式/分隔符可以是任何方便此任务的格式:例如:Col1 | Col2

我只是在寻找一些指示来让我开始。

谢谢!

标记

roj*_*ojo 5

二维数字索引数组的模拟:

内容textfile.txt

var 1,val 1
var 2,val 2
var 3,val 3
Run Code Online (Sandbox Code Playgroud)

内容test.bat

var 1,val 1
var 2,val 2
var 3,val 3
Run Code Online (Sandbox Code Playgroud)

结果输出:

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
Run Code Online (Sandbox Code Playgroud)

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

关联数组的模拟:

内容textfile.txt

key 1=val 1
key 2=val 2
key 3=val 3
Run Code Online (Sandbox Code Playgroud)

内容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
Run Code Online (Sandbox Code Playgroud)

结果输出:

config[key 1]=val 1
config[key 2]=val 2
config[key 3]=val 3
Run Code Online (Sandbox Code Playgroud)