Board logo

标题: [文本处理] [已解决]自动查找和替换文本内容的批处理程序 [打印本页]

作者: hnwbl    时间: 2009-6-5 14:18     标题: [已解决]自动查找和替换文本内容的批处理程序

求自动查找和替换文本内容的批得理程序

想指定在指定路径下面的,如D:\Program Files\BAI_PG\BSP\CLIENT

下面有BSP.ini 下面的地址192.168.1.2 替换为:192.168.2.222

请高手帮忙谢谢

[ 本帖最后由 hnwbl 于 2009-6-8 07:49 编辑 ]
作者: batman    时间: 2009-6-5 19:31

好像标题中这个自动查找是多余的吧(因为楼主指定了目录):
  1. @echo off&setlocal enabledelayedexpansion
  2. set "push=d:\progra~1\bai_pg\bsp\client\bsp.ini"
  3. for /f "delims=" %%a in (%push%) do (
  4.      set "str=%%a"
  5.      if not defined flag (
  6.         echo !str:192.168.1.2=192.168.2.222!>%push%
  7.         set "flag=a"
  8.         ) else (
  9.        echo !str:192.168.1.2=192.168.2.222!>>%push%
  10.      )
  11. )
  12.       
复制代码

作者: lovecmd    时间: 2009-6-5 23:51     标题: 回复 2楼 的帖子

man版主:
        我刚学bat,今天看到LZ发的帖子说是自动查找和替换,可是他已经指明了路径。已经没有意义了,我想知道如果在不知道路径的情况下怎么查找并替换里面的内容?
    例如说:
lovecmd.txt文件(不知道它的路径),里面有一段内容(lovecmd):我想把内容(lovecmd)替换成(lovebat)
    请问怎么表示?
作者: fyb198351    时间: 2009-6-6 02:25

回3楼
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('fsutil fsinfo drives ^|find /v ""') do (
    set div=%%i
    set div=!div:~-3,3!
    fsutil fsinfo drivetype !div! | find "固定" >nul&&(
    for /f "tokens=*" %%j in ('dir /b /s !div!lovecmd.txt 2^>nul') do (
    set pat=%%~fsj
    for /f "delims=" %%a in (!pat!) do (
    set str=%%a
    set str=!str:lovecmd=lovebat!
)
)
  )
   )
echo !str!>!pat!
start "" "%pat%"
作者: hnwbl    时间: 2009-6-6 08:38

好像错了吧,现在bsp.ini 里只有

DLUsed=0

这个了呀,其它的全没有了哦,
作者: tireless    时间: 2009-6-6 10:44

  1. @echo off
  2. set file="D:\Program Files\BAI_PG\BSP\CLIENT\BSP.ini"
  3. for /f "tokens=1,* delims=:" %%a in ('findstr /n .* %file%') do (
  4.   if not defined clear set clear=.>%file%
  5.   set var=%%b
  6.   setlocal enabledelayedexpansion
  7.   echo;!var:192.168.1.2=192.168.2.222!>>%file%
  8.   endlocal
  9. )
复制代码

作者: hnwbl    时间: 2009-6-8 07:48

非常谢谢,问题已经解决




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