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

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楼的答案我早就已经试过了,不行,不过谢谢,

@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

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-09
'不知道你是要练习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

本回答被提问者采纳

使用批处理for处理文本中的字符串替换
echo off & setlocal enabledelayedexpansionset \/p var=请输入替换名称for \/f "tokens=*" %%i in (1.txt) do ( if "%%i"=="" (echo.) else (set "line=%%i" & call :chg))>>new_1.txtpauseexitset "line=!line:123456=%var%!"echo !line!goto :eof将1.txt文件里的123456替...

用批处理替换文本内容的字符串,
echo off & setlocal enabledelayedexpansionset \/p var=请输入替换名称for \/f "tokens=*" %%i in (1.txt) do ( if "%%i"=="" (echo.) else (set "line=%%i" & call :chg))>>new_1.txtpauseexitset "line=!line:123456=%var%!"echo !line!goto :eof 将1.txt文件里的123456...

Windows批处理-for命令详解
可以在批处理文件中或直接从命令提示符使用 for 命令。 使用批处理参数 下列属性适用于 for 命令: for 命令使用指定 set 中的每个文本字符串替换 %variable 或 %%variable,直到 command 处理所有文件为止。 记住,for variable名是区分大小写、全局的,并且每次总共不超过 52 个是活动的。 要避免批处理参数从 %0 ...

批处理如何实现文本文件中指定行内容的替换?
1、首先,准备一个conf.ini,内容如下图所示。现在要将title的值修改“我是新标题”。2、如果ini内的文件比较简单,其次可以直接新生成一个。3、运行一下代码,效果如下,可以看到ini内容已经修改。4、假设不知道ini的具体内容,只是知道其中有“我是新标题”,现在要将“我是新标题”替换成"newtitle"...

怎样用批处理文件替换文本文件中的字符串?
echo off ::下面这行设置你要替换的文件名,这里是test.txt,改成你自己的 set file=test.txt if exist result.txt del result.txt for \/f "tokens=*" %%i in (%file%) do call :begin ^"%%i^"start notepad result.txt goto :eof :begin set var=%~1 if defined var set var=%var:...

cmd相关,用批处理替换文本中指定的字符
echo off(for \/f "tokens=1-5* delims=," %%1 in (d:\\s.txt) do ( echo,%%1,%%2,%%3,%%4,0,%%6))>$move \/y $ d:\\s.txt

如何用批处理替换掉一个文本中的字符串到另一个文本中的字符串?
">>c.txt echo !var!)copy \/y c.txt b.txt :delall if exist c.txt del c.txt\/f\/q goto :eof rem rem 星号上代码另存为xx.bat,和b.txt放在同级目录下 rem MAC地址获取那句我的和你的不一样,你看不合用就改成你自己的吧 rem b.txt做好备份,这个运行之后就替换了 ...

利用批处理替换文本内容时 文本中英文特殊字符被被忽略(例如英文感叹号...
for \/f "delims=" %%a in (file.txt) do (set aa=%%a setlocal enabledelayedexpansion set aa=!aa:\\=\\\\!echo !aa!>>"file.tmp"endlocal )看样子楼主应该是对批处理有一定的了解吧,具体原理我就不说了,总的来说就是setlocal enabledelayedexpansion之后再使用for的话, %%a里的"!"会被...

求批处理for命令的完整讲解!!!
含有\/F的for有很大的用处,在批处理中使用的最多,用法如下:格式:FOR \/F ["options"] %%i IN (file) DO commandFOR \/F ["options"] %%i IN ("string") DO commandFOR \/F ["options"] %%i IN ('command') DO command这个可能是最常用的,也是最强的命令,主要用来处理文件和一些命令的输出结果。file...

批处理文本,查找并替换指定字符串所在的行
echo off&setlocal enabledelayedexpansionset "src=replace"set "dst=替换"(for \/f "delims=" %%a in (a.txt) do ( set "str=%%a" echo,!str:%src%=%dst%!))>#move # a.txt

相似回答
大家正在搜