[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样判断文本中的内容?

各位大虾好:

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

就是想要一个批处理能判断文本文件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中取,仍旧是第一次取的数据。
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2

  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 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

不行啊。运行后一直在等待5秒。
而且测试时example.txt中只有这三行。
也是在XPSP3下测试的。

TOP

打错一个字符,已经修改
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

哎。也是在XP sp3下测试的。不行啊,一直在重复ping 127.1 -n 5 >nul 2>&1
而且文本文件中只有这三行。

TOP

Good!可以了,谢谢!

TOP

不过,我想要判断这个文件中是否有我想要的字符串,不一定判断所有的。
比如:只判断文件中是否有cccc,有的话echo 有;没有的话,echo 没有。
该如何修改呢?

TOP

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

TOP

返回列表