使用批处理文件读取以数字开头的文本文件行

时间:2014-07-28 19:53:10

标签: batch-file text-files

我不确定这是否可行,但批处理文件是否有办法读取文本文件,但跳过不以数字开头的行?

例如:

handled
219278
check
219276
control
219274
co
219268

for循环跳过可以处理,检查,控制等吗?

我知道:

cscript C:\Users\c1921\Test\curltest.vbs"!$MyVar!">>C:\Users\c1921\Test\Datapoints\!$MyVar!.txt

将所有输出都放到此文本文件中,但是:

FOR /F %%i in (C:\Users\c1921\Test\Datapoints\!$MyVar!.txt) DO (
set "$UnitID=%%i"
)

将每一行读入变量。我可以以某种方式使用delims和令牌来获取数字吗?

修改

我认为这可能是关于这个问题的答案:Windows Batch file to echo a specific line number

我在文章中的文件可能没有单词之间的数字,例如:

handled
check
219276
control
219274
co
219268

这不应该经常发生,但我想确保我可以避免这种情况发生。

2 个答案:

答案 0 :(得分:1)

for /f "delims=" %%a in ('findstr /r /b /c:"[0-9]" "c:\somewhere\file.txt"') do echo %%a

这使用findstr使用正则表达式过滤输入文件,仅返回以数字开头的行

答案 1 :(得分:1)

FINDSTR /b "[0-9]" q25003233.txt

我使用了一个名为q25003233.txt的文件,其中包含我的测试数据。