bat批量修改多文件夹中txt文件中的内容 65
1、比如说我的e:\test文件夹中有多个文件夹,文件夹名如101,102,103;2、这101,102,103每个文件夹中都有一个文件label.xml文件;3、该文件...
1、比如说我的e:\test文件夹中有多个文件夹,文件夹名如101,102,103;
2、这101,102,103每个文件夹中都有一个文件label.xml文件;
3、该文件第60行有,a="12345",b="12350",第61行有c="12365",d="12370";
4、现在需要把这abc的内容改为文件夹名相关的数值。如文件夹101中的abcd值改为a="101*10",b="101*10+9",c="101*10+11",d="101*10+19",即a="1010",b="1019",c="1020",d="1029"
5、其他文件夹里面label.xml的内容修改以此类推。
求大神指点! 展开
2、这101,102,103每个文件夹中都有一个文件label.xml文件;
3、该文件第60行有,a="12345",b="12350",第61行有c="12365",d="12370";
4、现在需要把这abc的内容改为文件夹名相关的数值。如文件夹101中的abcd值改为a="101*10",b="101*10+9",c="101*10+11",d="101*10+19",即a="1010",b="1019",c="1020",d="1029"
5、其他文件夹里面label.xml的内容修改以此类推。
求大神指点! 展开
1个回答
2015-01-22
展开全部
没有按行查找,对所有的 指定字符串例如( a="12345" ),
按要求替换。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /ad/b /s "e:\test\"') do (
set n=%%~ni
if exist "%%~i\label.xml" (
call set /a a=!n!*10
call set /a b=!n!*10+9
call set /a c=!n!*10+11
call set /a d=!n!*10+19
REP.vbs "%%~i\label.xml" !a! !b! !c! !d! ))
del REP.vbs
echo 完成 任意键 退出
pause>nul
exit
:sub1
>REP.vbs echo file=wscript.arguments(0)
>>REP.vbs echo a1="a="^&chr(34)^&"12345"^&chr(34)
>>REP.vbs echo b1="b="^&chr(34)^&"12350"^&chr(34)
>>REP.vbs echo c1="c="^&chr(34)^&"12365"^&chr(34)
>>REP.vbs echo d1="d="^&chr(34)^&"12370"^&chr(34)
>>REP.vbs echo a2="a="^&chr(34)^&wscript.arguments(1)^&chr(34)
>>REP.vbs echo b2="a="^&chr(34)^&wscript.arguments(2)^&chr(34)
>>REP.vbs echo c2="a="^&chr(34)^&wscript.arguments(3)^&chr(34)
>>REP.vbs echo e2="a="^&chr(34)^&wscript.arguments(4)^&chr(34)
>>REP.vbs echo set fso=createobject("scripting.filesystemobject")
>>REP.vbs echo set fil=fso.opentextfile(file)
>>REP.vbs echo S=fil.readall
>>REP.vbs echo fil.close
>>REP.vbs echo set fi=fso.opentextfile(file,2)
>>REP.vbs echo s=Replace(s,a1,a2)
>>REP.vbs echo s=Replace(s,b1,b2)
>>REP.vbs echo s=Replace(s,c1,c2)
>>REP.vbs echo s=Replace(s,d1,d2)
>>REP.vbs echo fi.write s
>>REP.vbs echo fi.close
goto :eof
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询