标题: [文件操作] 批处理怎样判断文本中的内容? [打印本页]
作者: 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
- @echo off&setlocal enabledelayedexpansion
- set "#1=aaaa"
- set "#2=bbbb"
- set "#3=cccc"
- :a
- for /f "tokens=1* delims=:" %%a in ('findstr /n .* "example.txt"') do if not "!#%%a!"=="%%b" (
- ping 127.1 -n 5 >nul 2>&1
- goto:a
- )
- echo 其他代码
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |