1

我有这种类型的文件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.

当我的 %%a 与第一列的值匹配时,我可以停止读取文件。可以批量进行吗?

4

2 回答 2

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
于 2013-03-08T23:17:05.750 回答
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%
于 2013-03-08T20:51:10.907 回答