Batch file 批量读取文件中的每一行

Batch file 批量读取文件中的每一行,batch-file,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. 当my%%与第一列的值匹配时,我可以停止读取文件。 是否可以成批执行此操作?

我有这种类型的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.
当my%%与第一列的值匹配时,我可以停止读取文件。
是否可以成批执行此操作?

列之间用制表符分隔太糟糕了。如果它们之间用空格隔开,则可以…(直接从命令行开始)(因此不需要批处理文件)

如果您回显%result%,则会在与008匹配的行上看到第二个令牌的上下文作为第一个令牌

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


我使用了@rene的答案的模拟版本来得出这个结论(不是rene的答案也会起作用)

test.txt的内容

001 00001
002 00002
003 00003
代码输出:

test=002
var=00002

我如何获得%b?我的意思是,批处理以自动方式将第一列和第二列插入到%a和%b中?这句话应该是
注意rene的答案也会起作用
。在我的命令行变体中,我还做了&goto:eof以尽早脱离命令行。但这只适用于命令脚本+1@rene它回答了你的问题吗n、 或者只是帮助你?如果它没有回答,我怎么能让它更好?我不是问这个问题的那个人…我回应了你对我答案的评论…你的也很好…@rene我知道你的名字和rschirin混淆了。也许我向下滚动而不是向上滚动。。。
@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
001 00001
002 00002
003 00003
test=002
var=00002