Board logo

标题: [文本处理] 批处理如何替换/修改文本里含有指定字符串的行中的部分字符串 [打印本页]

作者: ONOSIN    时间: 2008-3-9 20:08     标题: 批处理如何替换/修改文本里含有指定字符串的行中的部分字符串

本帖最后由 pcl_test 于 2016-8-6 18:40 编辑

批处理如何修改文件内容

现在有文件1.txt 内容为
/******************************/
company name=abc
/*****************************/

现在想写一个批处理,实现这个功能
打开文件,找到company name=abc这行,然后吧abc改成bcd
即修改后文件为
/******************************/
company name=bcd
/*****************************/

请高人指点,多谢了!!!
作者: 随风    时间: 2008-3-9 20:21

修改文件内容??
将文件内容中的1改为2也是修改文件内容,
将文件中的某字符删除也是修改文件内容。
楼主,你的标题能不能再说贴切点,这样,别人遇到同样问题时就不用再发帖了。
同时,明确的标题也更能让别人愿意解答你的问题。。。。
作者: 随风    时间: 2008-3-9 21:14

:
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.   if /i "%%a"=="company name=abc" (echo company name=bcd) else echo.%%a
  4. )
  5. pause
复制代码

[ 本帖最后由 随风 于 2008-3-9 21:16 编辑 ]
作者: ywtuf    时间: 2008-3-9 21:25

  1. @echo off
  2. ren 1.txt a.txt
  3. setlocal enabledelayedexpansion
  4. set ty1=abc
  5. set ty2=bcd
  6. for /f "tokens=*"  %%M in (a.txt) do (
  7.     set var=%%M
  8.     set "var=!var:%ty1%=%ty2%!"
  9.      echo !var!>>b.txt
  10.    )
  11. endlocal
  12. ren b.txt 1.txt
  13. del a.txt
复制代码

作者: 随风    时间: 2008-3-9 21:46     标题: 回复 4楼 的帖子

楼上的代码会将文档中所有的abc都替换成bcd,而楼主要求的是把company name=abc后面的abc替换为bcd
作者: huaxn    时间: 2009-7-2 13:13

随风 我也有这样的问题就是不重新写入别的文件,而是直接修改原文件,比如搂主这样的问题。
你的代码我运行了下只是显示在屏幕,并不能在原文件修改,可有解决办法?




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