vbscript替换文本 - 不是在所有文档中

时间:2014-07-03 12:35:57

标签: vbscript

上午, 我有一个我用这个vbscript修改的ini文件:

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

FileContents = GetFile(FileName)
dFileContents = replace(FileContents, Find, ReplaceWith, 1, -1, 1)
WriteFile FileName, dFileContents

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

现在我调用cscript replace.vbs“我要搜索的内容”“文件名”“我要替换的内容”

这项工作,但这个脚本取代了“我想要搜索的内容”中的所有单词。 在我的“文件名”中有更多具有相同名称的条目,我只想清除第一个条目。 我能做什么? 感谢

1 个答案:

答案 0 :(得分:1)

引用Ansgar:如有疑问,请阅读Docs。注意count参数。这将解决您的具体问题 - 仅替换第一次出现。

更好,更通用的方法:使用RegExp通过指定其键来标识要更改的值。