Board logo

标题: [文本处理] 查找含有特定字符串的行并替换行 [打印本页]

作者: yywd    时间: 2008-9-4 10:04     标题: 查找含有特定字符串的行并替换行

查找含有特定字符串的行并替换行

查找含有特定字符串的行并替换行
A.TXT中的某行有A字符串则整行替换为B字符串,A,B字符串中都可能有特殊字符
尽量用cmd内置的替换功能。

[ 本帖最后由 yywd 于 2008-9-4 13:53 编辑 ]
作者: pusofalse    时间: 2008-9-4 11:32

说的太笼统了!用个实例说不好吗??
作者: yywd    时间: 2008-9-4 12:39

A.TXT中的原文:
  1. fontfile /FONTS
  2. title 系统
  3. password --md5 $1$8$kJA8GTlFXnGjt/JVeedgk/
  4. chainloader /minipe/ldrxpe
  5. title 系统
  6. password --md5 $1$8$kJA8GTlFXnGjt/JVeedgk/
  7. chainloader /minipe/ldrxpe
  8. title 关机
  9. halt
复制代码


A字符串=password --md5
B字符串=785fJLn)&%^#@tt
用BAT改成:
  1. fontfile /FONTS
  2. title 系统
  3. 785fJLn)&%^#@tt
  4. chainloader /minipe/ldrxpe
  5. title 系统
  6. 785fJLn)&%^#@tt
  7. chainloader /minipe/ldrxpe
  8. title 关机
  9. halt
复制代码

[ 本帖最后由 pusofalse 于 2008-9-4 12:50 编辑 ]
作者: pusofalse    时间: 2008-9-4 13:01

  1. @echo off
  2. ren a.txt temp.txt
  3. for /f "delims=" %%a in ('findstr/n .* temp.txt') do (
  4.       set "a=%%a"
  5.       setlocal enabledelayedexpansion
  6.       set "a=!a:*:=!"
  7.       if defined a set "a=!a:password --md5 $1$8$kJA8GTlFXnGjt/JVeedgk/=785fJLn)&%%^#@tt!"
  8.       echo.!a!
  9.       endlocal
  10. )>>a.txt
  11. del temp.txt&start a.txt
复制代码

作者: yywd    时间: 2008-9-4 13:33

原帖由 pusofalse 于 2008-9-4 13:01 发表
@echo off
ren a.txt temp.txt
for /f "delims=" %%a in ('findstr/n .* temp.txt') do (
      set "a=%%a"
      setlocal enabledelayedexpansion
      set "a=!a:*:=!"
      if defined a set "a=!a:pas ...


谢谢你的回复,A字符串只能确定到password --md5之后的$1$8$kJA8GTlFXnGjt/JVeedgk/无法确定呀
作者: pusofalse    时间: 2008-9-4 13:42     标题: 回复 5楼 的帖子

试下这个:
  1. @echo off
  2. ren a.txt temp.txt
  3. for /f "delims=" %%a in ('findstr/n .* temp.txt') do (
  4.       set "var=%%a"
  5.       setlocal enabledelayedexpansion
  6.       set "var=!var:*:=!"
  7.       if defined var if /i "!var:~,14!" equ "password --md5" set "var=785fJLn)&%%^#@tt"
  8.       echo.!var!
  9.       endlocal
  10. )>>a.txt
  11. del temp.txt&start a.txt
复制代码

作者: yywd    时间: 2008-9-4 13:52

谢谢你的回复,可以用了, if /i "!var:~,14! 很好




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