解析文本文件以获取数字

时间:2016-08-22 15:18:58

标签: batch-file command-line cmd

我有一个包含多个不同行的文本文件。我想得到以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 个答案:

答案 0 :(得分: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 - 在您的示例中,您需要六个字符,而不是五个