Board logo

标题: [文本处理] [已解决]批处理怎样替换文本的特定内容为其他内容? [打印本页]

作者: 珠七七    时间: 2011-12-23 13:40     标题: [已解决]批处理怎样替换文本的特定内容为其他内容?

本帖最后由 pcl_test 于 2016-7-31 22:19 编辑

本人工作需要,修改c:\WINDOWS\system32\drivers\etc\hosts里面的内容.想把某个文本,替换为另一个文本.比如P01替换为P02,这个手动输入的.
但是自己修改别人的代码时,发现了错误.代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d c:\WINDOWS\system32\drivers\etc\
  4. cd.>HOSTS_new.txt
  5. for /f %%a in ('type HOSTS') do (
  6. set str=%%a
  7. set "str=!str:P01=P02!"
  8. echo !str!>>HOSTS_new.txt
  9. )
  10. ren hosts hosts_old
  11. ren HOSTS_new.txt hosts
  12. set str=
  13. notepad hosts
  14. pause
复制代码
运行后的hosts文件里面的内容全部丢失了,想要替换的内容也没有实现.请大家帮忙看看哪里出错了.
或者帮我写个代码...非常感谢!!
作者: Demon    时间: 2011-12-23 14:25

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. pushd %WINDIR%\System32\drivers\etc
  4. ren hosts hosts.bak
  5. (for /f "delims=" %%i in (hosts.bak) do (
  6. set s=%%i
  7. set s=!s:P01=P02!
  8. echo !s!
  9. )) >> hosts
  10. pause
复制代码

作者: awk    时间: 2011-12-23 21:32

  1. sed -i "s/P01/P02/g" C:\WINDOWS\system32\drivers\etc\hosts
复制代码

作者: 珠七七    时间: 2011-12-28 22:36

Thanks......




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