2016-08-22 81 views
0

我有一个文本文件包含几个不同的行。我想获取以CellNumber开头的行的编号,例如解析文本文件得到编号

file.txt的

Hello there 
my name is struct 
CellNumber 4.0050 
I am from Timbuktu 

我怎么能存储在一个变量数量4.005?

这是我的尝试:

for /F "tokens=*" %%A in (file.txt) do (
    echo %%A 

    IF "%%A:~0,10%"=="CellNumber" (
     set var=%var:~-5% 
    ) 
) 

echo result: %var 
+1

可能重复的[从文本文件分配一个值到变量](http://stackoverflow.com/questions/18800484/assigning-a-value-从-A-文本音响勒到一个可变的) – aschipfl

回答

3

太复杂。使用findfindstr来获得所需的行和适当的令牌和分隔符来解析该行。所有你需要的是:

for /F "tokens=2" %%A in ('type file.txt^|findstr /b "CellNumber"') do set var=%%A 
echo result: %var% 

阅读for /?代币和分隔符。

这样就避免了/纠正在你的代码的四个错误:
- 你不能for变量(%%A
使用子 - 你需要delayed expansion
- 变量与%var%参考,并不%var
- 在你的例子中,你需要六个字符,而不是五个