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

[文件操作] [已解决]批处理怎样查找文件中的指定内容并显示?

  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窗口里
1

评分人数

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

是你表达能力有问题,还是我理解能力有问题

TOP

2# Demon


补充了一下,麻烦你了...

TOP

2# Demon
他的意思就是显示两个*号之间的内容,但不显示重复的

TOP

本帖最后由 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
复制代码
1

评分人数

    • comicguests: 感谢感谢感谢感谢 超感谢!!!技术 + 1

TOP

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

评分人数

TOP

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

TOP

本帖最后由 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
复制代码
2

评分人数

TOP

8# tmplinshi


感谢!!!!!

TOP

返回列表