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