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

[文本处理] 批处理怎么判断文本指定行中是否存在指定单词?

怎样实现检查文本中第一个带有某一单词的行中是否存在另一单词。
我想做一个可以自动装系统的批处理。发了一个“怎么区分硬盘的贴子”没人回。
思路是这样的。用U盘winpe起动电脑,然后在连接移动硬盘。运行U盘里的批处理自动把移动硬盘的镜像文件恢复到电脑上的硬盘里。正常情况下电脑本身硬盘为 1  ,U盘为 2 ,移动硬盘为 3,所以我就用(ghost.exe -clone,mode=load,src=3.1\429.gho,dst=1, -sure -rb).但有时候用U盘起动后U盘为第一块盘。就会把镜像恢复到U盘上去。我的思路是先用ghost -dd成生一个GHSTSTAT.TXT文件,然后在文件里检查(Drive 0 Hitachi HTS545032B9A300 100425PBPC031DE0V24L)这一行中是否包含“Kingston”(我用的是金士顿的U盘)这个词。如果有就运行(ghost.exe -clone,mode=load,src=3.1\429.gho,dst=2, -sure -rb)如果没有就运行(ghost.exe -clone,mode=load,src=3.1\429.gho,dst=1, -sure -rb)。

[ 本帖最后由 wfnydx 于 2010-6-15 16:12 编辑 ]

判断文本1.txt中的第5行(忽略空行)里是否存在单词Hanyeguxing
1,忽略文本中的空行:
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do (set/a n+=1&set "a=%%a"
  3. setlocal enabledelayedexpansion
  4. if !n!==5 if not "!a!"=="!a:Hanyeguxing=!" echo.存在
  5. Endlocal)
  6. pause
复制代码
2,不忽略文本中的空行:
  1. @echo off
  2. for /f "tokens=1 delims=:" %%a in ('findstr /n /c:"Hanyeguxing" 1.txt') do if %%a==5 echo.存在
  3. pause
复制代码

[ 本帖最后由 hanyeguxing 于 2010-6-15 11:52 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

  1. findstr "BatHome" 1.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

多谢,是否可以改成检查文本中第一个带有某一单词的行中是否存在另一单词

TOP

回复 4楼 的帖子

能否把你的所有需求全部更新到顶楼?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 wfnydx 于 2010-6-15 13:44 发表
多谢,是否可以改成检查文本中第一个带有某一单词的行中是否存在另一单词
1,全部符合条件:
  1. findstr /c:"Hanye" 1.txt|findstr /c:"Guxing"
复制代码
2,第一个符合条件:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do set "a=%%a"&if not "!a!"=="!a:Hanye=!" if not "!a!"=="!a:Guxing=!" goto:han
  3. echo.不存在&pause&exit
  4. :han
  5. echo.存在:%a%&pause
复制代码

[ 本帖最后由 hanyeguxing 于 2010-6-16 16:54 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

多谢寒夜孤星,比以前方便多了。最后后写成这样的。
  1. @echo off
  2. del ghststat.txt
  3. ghost -dd
  4. @echo off&setlocal enabledelayedexpansion
  5. for /f "delims=" %%a in (GHSTSTAT.txt) do set "a=%%a"&if not "!a!"=="!a:Drive 0=!" if not "!a!"=="!a:Kingston=!" goto:han
  6. echo.注意对应机型&pause&ghost.exe -clone,mode=load,src=3.1\429x.gho,dst=1, -sure -rb
  7. exit
  8. :han
  9. echo.注意对应机型:%a%&pause&ghost.exe -clone,mode=load,src=3.1\429x.gho,dst=2, -sure -rb
  10. exit
复制代码

TOP

返回列表