使用批处理for处理文本中的字符串替换

for%%iin(*.txt)多个文本文件都包含Object{uuid=0,id="16246",title="嘻哈呀1",更多...}1Object{uuid=0,id... for %%i in(*.txt)
多个文本文件 都包含
Object { uuid=0, id="16246", title="嘻哈呀1", 更多...}
1
Object { uuid=0, id="11295", title="嘻哈呀2", 更多...}
2
Object { uuid=0, id="11302", title="嘻哈呀3", 更多...}
3
怎么才能把字符串Object { uuid=0, id=" 替换成字符串 <a href=http://www.cmos.com/source/getfile?id=
并生成new%%i.txt
1楼的答案我早就已经试过了,不行,不过谢谢,
展开
 我来答
fly2084
高能答主

2014-12-05 · 有什么不懂的尽管问我
知道大有可为答主
回答量:4.1万
采纳率:83%
帮助的人:6286万
展开全部
@echo off & setlocal enabledelayedexpansion
set /p var=请输入替换名称
for /f "tokens=*" %%i in (1.txt) do (
    if "%%i"=="" (echo.) else (set "line=%%i" & call :chg)
)>>new_1.txt
pause
exit

set "line=!line:123456=%var%!"

echo !line!
goto :eof

将1.txt文件里的123456替换为指定内容

以下为替换多个内容

@echo off & setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (1.txt) do (
    if "%%i"=="" (echo.) else (set "line=%%i" & call :chg)
)>>new_1.txt
pause
exit

:chg
rem 这个是保留空行
set "line=!line:1=a!"
rem 第一个替换。。。1变成a
set "line=!line:2=B!"
rem 第二个替换。。。2换成B.....
set "line=!line:3=C!"
rem 第三个。
set "line=!line:4=D!"
rem 第四个。。。
echo !line!
goto :eof
百度网友dadee7f
2014-12-09 · TA获得超过1869个赞
知道小有建树答主
回答量:867
采纳率:67%
帮助的人:379万
展开全部
'不知道你是要练习bat技巧呢还是要解决实际问题,要是想解决问题,我用vbs应该也没事吧
Set fso = WScript.CreateObject("Scripting.Filesystemobject")

findstr="Object { uuid=0, id="'要查找的文本

repstr="<a href=
用来替换的文本

Set fd = fso.GetFolder(".")'当前文件夹

Set fs = fd.Files

for Each f in fs

fext=LCase(Right(f.Name,4))'后缀

If fext=".txt" then

fname=left(f.name,len(f.name)-4)'文件名

Set f=fso.OpenTextFile(f,1)

str=f.ReadAll

f.Close

rs=Replace(str,findstr,repstr,1)

Set fnew=fso.CreateTextFile("new"&fname&".txt",1)

fnew.Write(rs)

fnew.Close

End If

Next
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式