标题: [文本处理] [已解决]批处理怎样替换文本的特定内容为其他内容? [打印本页]
作者: 珠七七 时间: 2011-12-23 13:40 标题: [已解决]批处理怎样替换文本的特定内容为其他内容?
本帖最后由 pcl_test 于 2016-7-31 22:19 编辑
本人工作需要,修改c:\WINDOWS\system32\drivers\etc\hosts里面的内容.想把某个文本,替换为另一个文本.比如P01替换为P02,这个手动输入的.
但是自己修改别人的代码时,发现了错误.代码如下:- @echo off
- setlocal enabledelayedexpansion
- cd /d c:\WINDOWS\system32\drivers\etc\
- cd.>HOSTS_new.txt
- for /f %%a in ('type HOSTS') do (
- set str=%%a
- set "str=!str:P01=P02!"
- echo !str!>>HOSTS_new.txt
- )
- ren hosts hosts_old
- ren HOSTS_new.txt hosts
- set str=
- notepad hosts
- pause
复制代码
运行后的hosts文件里面的内容全部丢失了,想要替换的内容也没有实现.请大家帮忙看看哪里出错了.
或者帮我写个代码...非常感谢!!
作者: Demon 时间: 2011-12-23 14:25
- @echo off
- setlocal enabledelayedexpansion
- pushd %WINDIR%\System32\drivers\etc
- ren hosts hosts.bak
- (for /f "delims=" %%i in (hosts.bak) do (
- set s=%%i
- set s=!s:P01=P02!
- echo !s!
- )) >> hosts
- pause
复制代码
作者: awk 时间: 2011-12-23 21:32
- 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 |