找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27003|回复: 8

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

[复制链接]
发表于 2011-7-3 12:57:39 | 显示全部楼层 |阅读模式
  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窗口里

评分

参与人数 1PB +2 收起 理由
zm900612 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-3 13:11:56 | 显示全部楼层
是你表达能力有问题,还是我理解能力有问题
 楼主| 发表于 2011-7-3 13:59:59 | 显示全部楼层
2# Demon


补充了一下,麻烦你了...
发表于 2011-7-3 14:15:42 | 显示全部楼层
2# Demon
他的意思就是显示两个*号之间的内容,但不显示重复的
发表于 2011-7-3 14:22:12 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
comicguests + 1 感谢感谢感谢感谢 超感谢!!!

查看全部评分

发表于 2011-7-3 14:22:31 | 显示全部楼层

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

评分

参与人数 1PB +2 收起 理由
zm900612 + 2 乐于助人

查看全部评分

 楼主| 发表于 2011-7-3 15:22:27 | 显示全部楼层
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
复制代码
发表于 2011-7-3 16:08:37 | 显示全部楼层
本帖最后由 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
复制代码

评分

参与人数 2PB +2 技术 +1 收起 理由
comicguests + 1 感谢
zm900612 + 2 乐于助人

查看全部评分

 楼主| 发表于 2011-7-3 16:40:10 | 显示全部楼层
8# tmplinshi


感谢!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:37 , Processed in 0.021498 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表