替换文本文件中的数字字符串

Replace Number Strings in Text File

我需要 VBScript 或批处理代码来替换文本文件一行中的 5 个字符(下面的粗体数字)以更改端口号。

change_port.vbs:

prefsFile = "%userprofile%\Desktop\teste.msrcincident"
prefsFile = CreateObject("WScript.Shell").ExpandEnvironmentStrings(prefsFile)

newPrefs = "5500"

Set fso = CreateObject("Scripting.FileSystemObject")

json = fso.OpenTextFile(prefsFile).ReadAll

Set re = New RegExp
re.Pattern = "":*?",*,"

json = re.Replace(json, ": & newPrefs & ",*,")

fso.OpenTextFile(prefsFile, 2).Write(json)

原始文本文件:

RCTICKET="65538,1,10.0.0.1:54593,*,ucIdnri2n4QPf/bv92mtx4w2qliCNdyDgBpHPr7nJFdxYL2/dR+iel9Mh4zgD6QR,*,*,Fbjf5rcIrdrlnibnisrzRcO8tsY=" PassStub="HG)7HbhIZPTiKy" RCTICKETENCRYPTED="1" DtStart="1457700115" DtLength="142560" L="0"/></UPLOADINFO>

预期结果文本文件:

RCTICKET="65538,1,10.0.0.1:5500,*,ucIdnri2n4QPf/bv92mtx4w2qliCNdyDgBpHPr7nJFdxYL2/dR+iel9Mh4zgD6QR,*,*,Fbjf5rcIrdrlnibnisrzRcO8tsY=" PassStub="HG)7HbhIZPTiKy" RCTICKETENCRYPTED="1" DtStart="1457700115" DtLength="142560" L="0"/></UPLOADINFO>

谁能帮帮我?

您的搜索和替换表达式一团糟。您正在寻找一个冒号 (:) 后跟一个或多个数字(\d+[0-9]+)后跟一个逗号 (,),并且想要替换它带有冒号,后跟新端口号和逗号。

改变这个:

re.Pattern = "":*?",*,"

json = re.Replace(json, ": & newPrefs & ",*,")

进入这个。

re.Pattern = ":\d+,"

json = re.Replace(json, ":" & newPrefs & ",")

总是让你的表达尽可能简单。