批处理替换字符串

有三个文件文件a.txt内容为:abc=123bbc=234ccc=1.23文件b.txt内容为:defineabc("789")definebbc("1.23")def... 有三个文件
文件a.txt内容为:
abc=123
bbc=234
ccc=1.23

文件b.txt内容为:
define abc ("789")
define bbc ("1.23")
define ccc ("911")

文件c.txt内容为:
<b>567</b>
<v>1.23</v>
<g>abc1.23</g>

求批处理将三个文件的1.23那个字段(包括123)的最后一位数+1,替换原数值,
处理后的文件a.txt内容为:
abc=124
bbc=234
ccc=1.24

处理后的文件b.txt内容为:
define abc ("789")
define bbc ("1.24")
define ccc ("911")

处理后的文件c.txt内容为:
<b>567</b>
<v>1.24</v>
<g>abc1.24</g>

要怎么实现?
展开
 我来答
qop_dob
2018-10-18 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:4030万
展开全部
/*&cls
@echo off
set @=Q&set/an=0x53b7e0b4
title +%@%%@% %n%

cd /d "%~dp0"
dir /a-d/b "a.txt" "b.txt" "c.txt" 2>nul|cscript -nologo -e:jscript "%~f0"
pause&exit
*/

var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream) {
    var line=WSH.StdIn.ReadLine();
    var text=read(line);
    text=text.replace(/(ccc=|define bbc \("|<v>)(\d+(?:\.\d+))/,function(a,b,c){
        var n=c.split('.');
        var m=n.length==1?1:1/(Math.pow(10, n[1].length));
        return b+(Number(c)+m);
    });
    write(text,line);
    WSH.echo(line);
}

function read(file){
    var f=fso.OpenTextFile(file, 1);
    var text=f.ReadAll();
    f.Close();
    return text;
}

function write(text, file){
    var f=fso.CreateTextFile(file, 2);
    f.Write(text);
    f.Close();
}
追问
非常感谢!有两个地方没改过来,abc=123应该变成abc=124,abc1.23应该变成abc1.24,能否帮忙实现一下
追答
……
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream) {
    var line=WSH.StdIn.ReadLine();
    var text=read(line);
    text=text.replace(/(abc=|ccc=|define bbc \("|<v>|<g>)(.*?\d+(?:\.\d+)?)/g,function(a,b,c){
        var e=c.replace(/\d+(\.\d+)?$/,function(x){
            var f=x.split('.');
            var g=f.length==1?1:1/(Math.pow(10, f[1].length));
            try{var r1=x.split('.')[1].length}catch(e){var r1=0} 
            try{var r2=g.toString().split('.')[1].length}catch(e){var r2=0} 
            h=Math.pow(10,Math.max(r1, r2));
            return (Number(x)*h+g*h)/h;
        });
        return b+e;
    });
    write(text,line);
    WSH.echo(line);
}
……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式