我有一个包含多个不同行的文本文件。我想得到以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
答案 0 :(得分:3)
find
或findstr
获取所需的行以及正确的令牌和分隔符以解析该行。您所需要的只是:
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
- 在您的示例中,您需要六个字符,而不是五个