Как удалить строку из файла .ini с помощью скрипта VBS

Я пытаюсь написать сценарий VBS для удаления строки из файла .ini. Однако, когда я запускаю его, новый файл (а также резервная копия) создается и переименовывается, но строка, которую я хочу удалить, все еще существует? Как я могу это исправить?

Вот мой код:

Const ForReading = 1
Const ForWriting = 2
Const OpenAsASCII = 0
Const CreateIfNotExist = True

Set objFSO = CreateObject("Scripting.FileSystemObject")
Const OverwriteExisting = True

'Making a backup of the file
objFSO.CopyFile "C:\notes.ini" , "C:\notesBACKUP.ini"

'Setting input of file
strInput = "C:\notes.ini"
Set objInput = objFSO.OpenTextFile(strInput, ForReading)

'Setting temp output for new file with omitted line
strOutput = "C:\notes2.ini"

Set objOutput = objFSO.OpenTextFile(strOutput, _
ForWriting, CreateIfNotExist, OpenAsASCII)


Do Until objInput.AtEndOfStream

strLine = objInput.ReadLine

'Line with EXTMGR to be replaced when copying to new file
If (InStr(LCase(strLine), "EXTMGR") > 0) Then

'New line replacing old one
strLine = "#Deleted"
End If

objOutput.WriteLine strLine
Loop


objInput.Close
objOutput.Close


'Deleting the original file
objFSO.DeleteFile(strInput)

'Renaming the new file (with line removed) to the original filename
objFSO.MoveFile "C:\notes2.ini" , "C:\notes.ini"

person Bajan    schedule 16.11.2012    source источник
comment
Вы выполняете преобразование строки в LCASE, а затем ищете строку во ВСЕХ ЗАГЛАВНЫХ БУКВАХ - это кажется странным. Какую строку в INI-файле вы хотите заменить? Можете ли вы поделиться этим?   -  person Andrew    schedule 17.11.2012
comment
true - не заметил этого, использовал части из старого скрипта, который у меня был - вот строка, которую мне нужно закомментировать (или удалить): EXTMGR_ADDINS=NCExtMgr   -  person Bajan    schedule 17.11.2012
comment
Если (InStr(strLine, EXTMGR_ADDINS) › 0) это не работает?   -  person Andrew    schedule 17.11.2012
comment
Да, только что вернулся и попробовал, работает отлично. Спасибо, раньше даже не замечал, дох!   -  person Bajan    schedule 17.11.2012


Ответы (1)


Вы выполняете LCASE преобразование строки, а затем ищете строку во ВСЕХ ЗАГЛАВНЫХ БУКВАХ.

Измените код на:
If (InStr(strLine, "EXTMGR_ADDINS") > 0)

person Andrew    schedule 16.11.2012