我有一个包含以下数据的txt文件
aaaa 1000 2000
bbb 3000 4000
cccc 5000
ddd 6000 7000 8000
此文件中的行数不固定。
我需要数组中每行的第一个标记并打印每个元素。
答案 0 :(得分:13)
创建数组:
setlocal EnableDelayedExpansion
set i=0
for /F %%a in (theFile.txt) do (
set /A i+=1
set array[!i!]=%%a
)
set n=%i%
打印数组元素:
for /L %%i in (1,1,%n%) do echo !array[%%i]!
如果要将数组名称和长度作为子例程参数传递,请使用以下方法:
call theSub array %n%
:theSub arrayName arrayLen
for /L %%i in (1,1,%2) do echo !%1[%%i]!
exit /B
答案 1 :(得分:2)
试试这个:
@echo off
for /F "tokens=1,2*" %%x in (myFile.txt) do echo %%x
批处理文件中需要使用双%
,但您可以使用单个%
在cmd行上对其进行测试。
for
将迭代myFile.txt
使用默认分隔符(空格)将每一行分成两个标记。
答案 2 :(得分:0)
尝试这个并从任何地方调用它
@echo off
for /f "usebackq" %%a in ('%2') do set d=%%~a
for /f "usebackq tokens=* delims=%d%" %%G in ('%3') do set %1=%%~G
set /a i=-1
for %%h in (!%1!) do (
set /a i+=1
set %1[!i!]=%%h
)