求助:使用批处理或vbs修改多个指定文本文件中的特定字符!

文本的格式有S1.dat,S2.ini和S3.inf

如果S1.dat文件中包含Aaa=111,Bbb=222,Ccc=333,将之替换为Aaa=1,Bbb=2,Ccc=3;
S2.ini文件中包含Ddd=444,将之替换为Ddd=4
S3.inf文件中包含Eee=555,将之替换为Eee=5

'像这种少量的替换就别管啥正则表达式了,直接硬上
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set f=fso.OpenTextFile("s1.dat",1)'以只读方式打开s1.dat
str=f.ReadAll'读取s1.dat中所有内容
str=Replace(str,"Aaa=111","Aaa=1")'替换文本。
str=Replace(str,"Bbb=222","Bbb=2")
str=Replace(str,"Ccc=333","Ccc=3")
f.Close'关闭文件,此句可忽略
Set f=fso.OpenTextFile("s1.dat",2)'以写方式打开s1.dat
f.Write(str)'将字符串rt写入s1.dat中
f.Write("此处为你要添加的内容")'write不换行,要换行用writeline
f.Close
Set f=fso.OpenTextFile("s2.ini",1)'以只读方式打开s2.ini
str=f.ReadAll'读取s2.ini中所有内容
str=Replace(str,"Ddd=4","Ddd=4")'替换文本。
f.Close'关闭文件,此句可忽略
Set f=fso.OpenTextFile("s2.ini",2)'以写方式打开s2.ini
f.Write(str)'将字符串rt写入s2.ini中
f.Close
Set f=fso.OpenTextFile("s3.inf",1)'以只读方式打开s3.inf
str=f.ReadAll'读取s3.inf中所有内容
str=Replace(str,"Eee=5","Eee=5")'替换文本。
f.Close'关闭文件,此句可忽略
Set f=fso.OpenTextFile("s3.inf",2)'以写方式打开s3.inf
f.Write(str)'将字符串rt写入s3.inf中
f.Close

追问

我这两天整学正则表达式呢,看到有代码给我参考实在是太高兴了,我想在问一下,如果我要替换的内容包含,双引号 会不会对脚本的运行有影响?

追答

要查找字符串中的双引号,需要在双引号的前面再加个双引号,第一个双引号是转义字符。举个例子,如果要查找字符串a"b"c,repalce函数里面要写成"a""b""c"

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-22
将(\d)\1\1替换为$1追问

请问你说的是什么?

追答

我是说的用《正则表达式》替换,晚上搜索正则表达式。。。

追问

有例句吗,可以写在批处理或者vbs中吗?

如果s1.dat文件中,字符排列如下:怎么能在更改后的Ccc后加入一行新字符串?
Aaa=111

Bbb=222

Ccc=333

……

追答

可以vbs写入

追问

大哥,给个示范吧!指定的s1文件为相对路径

大哥,给个示范吧!指定的s1文件为相对路径

相似回答