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

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

  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部分存在指定机构号?求大神指点!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# apang


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

其次,现在是只检测机构号一个关键词,能不能同时再加多一个关键词?

TOP

回复 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
复制代码
1

评分人数

TOP

返回列表