我有一个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 =
答案 0 :(得分:1)
您可以使用InStr()检查strText
是否包含“Jim”或“James”,并根据您真正想要的内容进行替换或保存。
Replace()
的文档解释了如何限制替换的数量 - 如果这是你的“execption”/“重复”所暗示的。
演示:
>> WScript.Echo Replace("AA", "A", "a", 1, 1, vbTextCompare)
>>
aA
>>
答案 1 :(得分:1)
将<Jim
替换为<!--Jim
而不是<!--<Jim
,以避免重复替换(即确保您的搜索字符串不是替换字符串的子字符串)。