Board logo

标题: [文件操作] 批处理怎样判断文本中的内容? [打印本页]

作者: lufil    时间: 2011-1-8 11:01     标题: 批处理怎样判断文本中的内容?

各位大虾好:

本人想要实现一个功能,但实现不了,请求帮助啊!

就是想要一个批处理能判断文本文件example.txt中
第一行是否等于aaaa
第二行是否等于bbbb
第三行是否等于cccc
如果都等于,那么执行接下去的代码;如果有一个不等于,那么等待5秒,继续读取example.txt中的内容,然后继续判断,直到example.txt中的内容和我想要的相同为止。其间,example.txt会更改内容的。

可否改一下呢?
:A
for /f "delims=" %%i in (example.txt) do (
        set /a n+=1&set _!n!=%%i
)
if "%_1%"=="aaaa" (goto B) else (goto A)
:B
if "%_2%"=="bbbb" (goto C) else (goto A)
:C
if "%_3%"=="cccc" (goto D) else (goto A)


echo OK
但现在循环时,不会再次从example.txt中取,仍旧是第一次取的数据。
作者: hanyeguxing    时间: 2011-1-8 12:42

  1. @echo off&setlocal enabledelayedexpansion
  2. set "#1=aaaa"
  3. set "#2=bbbb"
  4. set "#3=cccc"
  5. :a
  6. for /f "tokens=1* delims=:" %%a in ('findstr /n .* "example.txt"') do if not "!#%%a!"=="%%b" (
  7.     ping 127.1 -n 5 >nul 2>&1
  8.     goto:a
  9. )
  10. echo 其他代码
  11. pause
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-8 13:24 编辑 ]
作者: lufil    时间: 2011-1-8 13:16

不行啊。运行后一直在等待5秒。
而且测试时example.txt中只有这三行。
也是在XPSP3下测试的。
作者: hanyeguxing    时间: 2011-1-8 13:23

打错一个字符,已经修改
作者: lufil    时间: 2011-1-8 13:58

哎。也是在XP sp3下测试的。不行啊,一直在重复ping 127.1 -n 5 >nul 2>&1
而且文本文件中只有这三行。
作者: lufil    时间: 2011-1-8 14:00

Good!可以了,谢谢!
作者: lufil    时间: 2011-1-8 14:17

不过,我想要判断这个文件中是否有我想要的字符串,不一定判断所有的。
比如:只判断文件中是否有cccc,有的话echo 有;没有的话,echo 没有。
该如何修改呢?
作者: wuhengsi    时间: 2011-1-8 20:28

楼主能不能贴出 “寒夜孤星” 写的  代码
经过修正能运行的那个?
感谢了。。。学习。。。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2