Insert text in SERVICES file with validation
I need to insert information in the file C:\Windows\system32\drivers\etc\Services but checking first if the data is not already there. My script is reading the information from another file, verify if exists, but is just inserting the first row, even though is checking the whole document. Any help will be appreciated.
Thanks
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("C:\Windows\system32\drivers\etc\Services", ForReading) 'services files
Set objTextFile2 = objFSO.OpenTextFile("C:\temp\Insert.txt", ForReading) 'file with the strings to insert
Dim value
Do Until objTextFile2.AtEndOfStream
strNextLine2 = objTextFile2.Readline
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
intLineFinder = InStr(strNextLine, strNextLine2)
If intLineFinder <> 0 Then
value = 1
strNextLine = strNextLine2
strNextmp = strNextLine2
Else
strNewFile = strNewFile & strNextLine & vbCrLf
value = 0
strNextLine = strNextLine
End If
strNewFile = strNewFile & strNextmp & vbCrLf '
Loop ' Second Do
If value = 1 Then
strNewFile = strNewFile & vbCrLf & strNextLine2
value = 0
End If
Loop ' First Do
objTextFile.Close
objTextFile2.Close
Set objTextFile = objFSO.OpenTextFile("C:\Windows\system32\drivers\etc\Services", ForWriting)
objTextFile.WriteLine strNewFile
objTextFile.Close
0 Comments
[ + ] Show comments
Answers (1)
Please log in to answer
Posted by:
dedenker
10 years ago
You have to create an array for all the line that need to be added, see MS technet.
So add the lines if missing to the array.
Then add all the lines from array to file.
So add the lines if missing to the array.
Then add all the lines from array to file.
Comments:
-
Use a Dictionary instead. They're much faster than arrays and the syntax is a little more friendly, too. - anonymous_9363 10 years ago