Board logo

标题: [文本处理] [已解决]批处理如何判断文本中的部分内容是否存在/含有指定关键词/字符串 [打印本页]

作者: lijiehao    时间: 2014-2-10 13:52     标题: [已解决]批处理如何判断文本中的部分内容是否存在/含有指定关键词/字符串

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set jx=0
  4. set str0=
  5. for /f %%c in (机构号.txt) do (
  6.       
  7.         FIND /i "%%c"  "系统信息.txt" >NUL
  8.         IF not ERRORLEVEL  1 GOTO FOUND_LABEL
  9.         goto not_found_label
  10. )
  11. :FOUND_LABEL
  12. ECHO 
  13. :NOT_FOUND_LABEL
  14. pause
复制代码
上述Check.bat可以判断“系统信息”里面是否存在“机构号”里面所填写的机构代码,但由于“系统信息”里面A部分是无需判断的,怎么样才能实现只判断B部分跟C部分存在指定机构号?求大神指点!
作者: lijiehao    时间: 2014-2-11 10:22

回复 2# apang


    非常感谢!
再请教findstr /ig:机构号.txt b.$>nul&&echo B_OK||echo B_NOK 这个是显示,怎么样改成goto?就是如果检测到机构号,则执行:found任务,检测不到则执行:not found。

其次,现在是只检测机构号一个关键词,能不能同时再加多一个关键词?
作者: DAIC    时间: 2014-2-11 13:11

回复 3# lijiehao
  1. @echo off
  2. for /f "delims=" %%a in (系统信息.txt) do (
  3.     if /i "%%a"=="(B系统)" set "b=1"
  4.     if /i "%%a"=="(C系统)" set "c=1" & set "b="
  5.     if defined b echo,%%a>>b.$
  6.     if defined c echo,%%a>>c.$
  7. )
  8. findstr /ig:机构号.txt b.$>nul && goto :B_found || goto :B_notfound
  9. findstr /ig:机构号.txt c.$>nul && goto :C_found || goto :C_notfound
  10. :B_found
  11. echo 找到B
  12. goto :end
  13. :B_notfound
  14. echo 找不到B
  15. goto :end
  16. :C_found
  17. echo 找到C
  18. goto :end
  19. :C_notfound
  20. echo 找不到C
  21. goto :end
  22. :end
  23. pause
复制代码





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