'新建一个Replace.vbs脚本,脚本内容如下,程序运行时输入三个参数:查找内容,替换内容,文件

Dim FileName, Find, ReplaceWith, FileContents, dFileContents
Find         = WScript.Arguments(0)
ReplaceWith  = WScript.Arguments(1)
FileName     = WScript.Arguments(2)

'读取文件
FileContents = GetFile(FileName)

'用“替换内容”替换文件中所有“查找内容”
dFileContents = replace(FileContents, Find, ReplaceWith, 1, -1, 1)

'比较源文件和替换后的文件
if dFileContents <> FileContents Then
  '保存替换后的文件
  WriteFile FileName, dFileContents

  Wscript.Echo "Replace done."
  If Len(ReplaceWith) <> Len(Find) Then
    '计算替换总数
    Wscript.Echo _
    ( (Len(dFileContents) - Len(FileContents)) / (Len(ReplaceWith)-Len(Find)) ) & _
    " replacements."
  End If
Else
  Wscript.Echo "Searched string Not In the source file"
End If

'读取文件
function GetFile(FileName)
  If FileName<>"" Then
    Dim FS, FileStream
    Set FS = CreateObject("Scripting.FileSystemObject")
      on error resume Next
      Set FileStream = FS.OpenTextFile(FileName)
      GetFile = FileStream.ReadAll
  End If
End Function

'写文件
function WriteFile(FileName, Contents)
  Dim OutStream, FS

  on error resume Next
  Set FS = CreateObject("Scripting.FileSystemObject")
    Set OutStream = FS.OpenTextFile(FileName, 2, True)
    OutStream.Write Contents
End Function

我做这个的目的是在我们的.net产品项目开发中,开发人员会基于我们的产品出一个一个的项目,对于不同的项目他们需要在编译参数中加项目名称,为了完成我们的持续集成,我就需要在每日编译中先设置产品的编译参数,然后出每个项目的集成测试包,所以我写了这个脚本来控制。net中需要参加编译的文件,编译参数在.csproj文件中的config域中,大家可以看看