覆盖异常

时间:2015-06-04 13:06:30

标签: vbscript

我有一个VBScript - 如果我运行它,我不希望它重复它正在替换的单词。我可以添加一个If语句来阻止它这样做吗?

Option Explicit
Const ForReading = 1
Const ForWriting = 2
Dim objFSO,objFile,strText,strNewText
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Users\newtons\Desktop\Text.txt",ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "<Jim","<!--<Jim")

'<pseudocode>
IF "<!--<Jim" = EXIST THEN DO NOTHING
END IF
'</pseudocode>

Set objFile = objFSO.OpenTextFile("C:\Users\newtons\Desktop\Text.txt",ForWriting)
objFile.WriteLine strNewText
objFile.Close
set objFSO = Nothing
set objFile = 

2 个答案:

答案 0 :(得分:1)

您可以使用InStr()检查strText是否包含“Jim”或“James”,并根据您真正想要的内容进行替换或保存。

Replace()的文档解释了如何限制替换的数量 - 如果这是你的“execption”/“重复”所暗示的。

演示:

>> WScript.Echo Replace("AA", "A", "a", 1, 1, vbTextCompare)
>>
aA
>>

答案 1 :(得分:1)

<Jim替换为<!--Jim而不是<!--<Jim,以避免重复替换(即确保您的搜索字符串不是替换字符串的子字符串)。