Board logo

标题: [文件操作] [已解决]批处理怎样查找文件中的指定内容并显示? [打印本页]

作者: comicguests    时间: 2011-7-3 12:57     标题: [已解决]批处理怎样查找文件中的指定内容并显示?

  1. for /r %%a in (*Exorcist*.rmvb) do move %%~sa F:\视频\戦う\蓝色驱魔师\
  2. for /r /d %%a in (*Exorcist*) do del /a /f /s "%%a\*.torrent"
复制代码
比如以上代码
有两个
*Exorcist*
我希望只显示一个...

er...
就是有一个bat文件,里面有上述代码
我想写一段代码,可以查找bat文件中**里的关键词,并显示在运行的cmd窗口里

ps.因为代码不知这两行,想把所有的关键词全显示在运行的cmd窗口里
作者: Demon    时间: 2011-7-3 13:11

是你表达能力有问题,还是我理解能力有问题
作者: comicguests    时间: 2011-7-3 13:59

2# Demon


补充了一下,麻烦你了...
作者: wolonga123    时间: 2011-7-3 14:15

2# Demon
他的意思就是显示两个*号之间的内容,但不显示重复的
作者: tmplinshi    时间: 2011-7-3 14:22

本帖最后由 tmplinshi 于 2011-7-3 14:26 编辑
  1. @echo off
  2. setlocal
  3. for /f "delims=* tokens=2" %%i in ('findstr /rc:" (.*\*.*\*.*) " 1.bat') do (
  4.     if not defined _%%i (
  5.         echo,%%i
  6.         set _%%i=#
  7.     )
  8. )
  9. pause
复制代码

作者: wolonga123    时间: 2011-7-3 14:22

  1. for /f "tokens=2 delims=*" %%i in (23.txt) do (
  2.      if not defined %%i (
  3.      echo %%i>>46.txt)
  4.      set "%%i=bathome"
  5.   )
  6. pause
复制代码

作者: comicguests    时间: 2011-7-3 15:22

5# tmplinshi


刚才忘问了,关键词列出后,可不可以赋予它一个序号,方便选择?
比如:
关键词1.....a
关键词2.....b
关键词3.....c
要删除哪个?
按a
确定
就可以删除关键词1所在行...
我的代码是这样的
  1. @echo off
  2. setlocal
  3. for /f "delims=* tokens=2" %%i in ('findstr /rc:" (.*\*.*\*.*) " ☆キラ☆.bat') do (
  4.     if not defined _%%i (
  5.         echo,%%i
  6.         set _%%i=#
  7.     )
  8. )
  9. :aki ============================================================
  10. set /p "str_key=删除哪个?:"
  11. sed -i "/*%str_key%*/d" ☆キラ☆.bat
  12. set "choice="&set/p choice=是否继续删除?(y/n):
  13. if /i "%choice%"=="y" goto:aki
  14. if /i "%choice%"=="n" exit
复制代码

作者: tmplinshi    时间: 2011-7-3 16:08

本帖最后由 tmplinshi 于 2011-7-3 16:10 编辑
  1. @echo off
  2. setlocal
  3. set n=
  4. set f="1.bat"
  5. for /f "delims=* tokens=2" %%i in ('findstr /rc:" (.*\*.*\*.*) " %f%') do (
  6.     if not defined _%%i (
  7.         set str=%%i
  8.         set /a n += 1
  9.         setlocal enabledelayedexpansion
  10.         echo [!n!] !str!
  11.         for /f "tokens=1,2 delims=*" %%a in ("!n!*!str!") do (
  12.             endlocal
  13.             set _%%b=_
  14.             set #%%a=%%b
  15.         )
  16.     )
  17. )
  18. :aki ============================================================
  19. set /p "str_key=删除哪个?:"
  20. setlocal enabledelayedexpansion
  21. findstr /vrc:" (.*\*!#%str_key%!\*.*) " !f! >..tmp
  22. endlocal
  23. move ..tmp %f%
  24. set "choice="&set/p choice=是否继续删除?(y/n):
  25. if /i "%choice%"=="y" goto:aki
  26. if /i "%choice%"=="n" exit
  27. endlocal
  28. pause
复制代码

作者: comicguests    时间: 2011-7-3 16:40

8# tmplinshi


感谢!!!!!




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