1

我的 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的只是给我32 + 1就是这样)。如果我只是使用"$2",那么它会返回144(请参阅第一行的版本号)。所以我的问题是,如果我想在内部进行快速算术替换,我应该怎么做?

提前感谢您提供的任何提示和建议

4

1 回答 1

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

希望这项工作。

于 2012-06-06T04:49:37.230 回答