我的web.config中有一行,如下所示
<clientDependency loggerType="xxx.ClientDependencies.Logger,StrattonWebShared" version="144">
我要做的是编写一个脚本来检查我的代码库是否有修改,然后将clientDependency模块版本更新为1(如果找到的话)。所以将版本增加一个的代码位如下
Set clientDepRegExp = new RegExp
clientDepRegExp.IgnoreCase = True
clientDepRegExp.Global = True
clientDepRegExp.Pattern = "(<clientDependency.*version=\"")(\d+)(\"".*)"
'1 = open file for reading
Set clientDependencyConfigFile = fileSystemObject.OpenTextFile(targetFile, 1)
fileContents = clientDependencyConfigFile.ReadAll
clientDependencyConfigFile.Close
fileContents = clientDepRegExp.Replace(fileContents, "$1" & CInt("$2") + 1 & "$3")
我的问题在于最后一行。 $2
是版本号,而CInt("$2") + 1
正在给我3
(所以2 + 1
就是这样)。如果我只使用"$2"
,则返回144
(请参阅版本号的第一行)。所以我的问题是,如果我做一个快速的算术内部替换我应该怎么做?
提前感谢您提供的任何提示和建议
答案 0 :(得分:1)
更改您的代码:
Set clientDepRegExp = New RegExp
Set fso = New Scripting.FileSystemObject
With clientDepRegExp
.IgnoreCase = True
.Global = True
.Pattern = "(<clientDependency[^<>]*?version="")(\d+)\b"
fileContents = fso.OpenTextFile(targetFile).ReadAll
tmp = .Replace(reftext, "$2")
fileContents = .Replace(reftext, "$1" & CStr(Val(tmp) + 1))
End With
希望这项工作。