批量读取文件中的每一行

时间:2013-03-08 20:31:15

标签: batch-file

我有这种类型的文件txt:

007   87855
008   87823
015   87830

这两列用一个标签分隔

我想这样做:

read each line of input.txt
if %%test == first_column_value_file
then assign %%second_column_value_file to %%var

"test" for example is 008.

当我的%%与第一列的值匹配时,我可以停止读取该文件。 是否可以批量执行此操作?

2 个答案:

答案 0 :(得分:1)

用标签分隔列太糟糕了。如果它们用空格分隔,那么这将起作用...(直接来自命令行(因此不需要批处理文件)

for /f "tokens=1,2 delims= "  %a in (input.txt) do if %a==008 set result=%b

如果你回显%result%,你会看到匹配008的第二个令牌的第一个令牌作为第一个令牌。

此版本可以在批处理脚本中使用,并修复了分隔符是一个选项卡的问题(我必须学会不那么精确/明确)。

set result=
for /f "tokens=1,2"  %%a in (input.txt) do if %%a==008 set result=%%b

echo Result is %result%

答案 1 :(得分:1)

我使用@rene的答案的模拟版本来提出这个问题(不是rene的答案也会起作用)......

@echo off
set test=002
for /f "tokens=1,2" %%a in (test.txt) do if %%a==%test% set var=%%b & goto end
:end
set test
set var
pause>nul

test.txt的内容:

001 00001
002 00002
003 00003

代码输出:

test=002
var=00002