某个行后的for循环中的Findstr命令停止

时间:2013-08-09 14:09:09

标签: windows batch-file

我有这段剧本:

for /F "tokens=1* delims=:" %%a in ('findstr /N /C:"%SECTION%" /C:"%TARGET%" %BASE%') do (
    :: Stuff:
)
echo Search Parameters not found

...其中SECTIONTARGET是两个搜索参数。 BASE文件约为16,000行。

这是我的问题:

当我在批处理脚本中执行for循环时,它会完全搜索2397行,然后放弃。但是,如果我手动运行findstr命令,它将按预期搜索所有行。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这对你来说失败了吗?它适用于Win 8和XP Pro VM,可打印16,000行。

@echo off
(for /l %%a in (1,1,16000) do @echo 0123456789012345678901234567890123456789)>file
SET "section=123"
SET "target=456"
SET "base=file"

ECHO start
for /F "tokens=1* delims=:" %%a in ('findstr /NC:"%SECTION%" /C:"%TARGET%" "%BASE%"') do (
ECHO %%a
)
pause

答案 1 :(得分:0)

愚弄错误 - 在更改版本时,某个文件的位置发生了变化。因此,当我认为我对该文件的搜索是正确的时,它实际上最终检索了一个类似名称的文件,但不是同一个文件(MotionBase.class.asasm vs我需要的东西:BASE.class.asasm) 以为我在提交这个问题之前检查了位置,但显然没有。