我有一个包含以下数据的txt文件
aaaa 1000 2000
bbb 3000 4000
cccc 5000
ddd 6000 7000 8000
这个文件中的行数是不固定的。
我需要将每一行的第一个令牌存储到数组中并打印出每个元素。
我有一个包含以下数据的txt文件
aaaa 1000 2000
bbb 3000 4000
cccc 5000
ddd 6000 7000 8000
创建数组的方法:
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
试试这个:
@echo off
for /F "tokens=1,2*" %%x in (myFile.txt) do echo %%x
双倍的%
在批处理文件中是必需的,但你可以在命令行上使用单个%
进行测试。
简而言之,for
将遍历myFile.txt
,使用默认分隔符(空格)将每一行分为两个标记。
尝试这个,可以从任何地方调用它
@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
)