'新建一个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域中,大家可以看看