【发布时间】:2014-05-22 23:07:37
【问题描述】:
我在使用 findstr 命令时遇到问题。 我正在使用批处理文件执行一个过程,该过程将搜索文件夹中的所有 .txt 并打印出在前 10 个字符中包含先前定义的字符串的行。 到目前为止,我一直在使用这批:
for /f "delims=" %%I in ('dir/B *.txt') 做 (
for /f "delims=" %%J in (%%I) 做 (
设置“=%%J”
call echo %%:~0,10%%|findstr "R0621 32411"&&call echo %%_%% >> search.txt
)
)
endlocal
然而,不知何故,这批不会打印出包含 R0621 或 32411 等字符串的行。这是一个错误吗?
当我尝试典型的 findstr 批处理时,它可以正常工作并打印出行。例如这个:
findstr "R0621 32411" *.txt >> search.txt
此批处理搜索的 .txt 文件如下所示:
AA32411 AAA 随机文本和数字 13121313212153
BBR0621 BBB 随机文本和数字 78975487798797
CCY4488 CCC 随机文本和数字 44455577799998
我不能使用 findstr,因为它会在 10 个字符之后找到字符串以及我不需要的那些行(我只需要那些我在每行的前 10 个字符中定义的字符串)。
还有其他选择吗?我试图搜索互联网,但在任何地方都找不到任何帮助。 另外为了更好地理解你可以查看我之前的帖子Batch to find a string of number&letter combination only in first 10 characters (in a txt file) per row and print the whole row
【问题讨论】:
标签: string batch-file cmd findstr