I numbered the lines for reference.

You're opening a file handle in line 13, but you're never closing it. This is 
leaving the file handle open for that instance of the script, which is 
preventing subsequent instances of the script from being able to open it.

End your script with another objTS.Close (like in line 11)

From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of David Landry
Sent: Tuesday, September 12, 2017 2:15 PM
To: scripting@lists.myitforum.com
Subject: [scripting] bat file will only run one time

Hi All,

I will admit up front, my script write abilities are slim. I have this script 
that I found to insert a new line of text into an .ini file and it works 
perfectly .... But for just one time. During my testing I removed the inserted 
line and text and then reran the script. Only this time it didn't do anything. 
Nothing got inserted. After rerunning this a dozen times or so I can't figure 
out why.

I tried this on a Windows 10 and a Windows 7 system with same behavior. It ran 
only once on each system.


1.       set objWS = CreateObject("Wscript.Shell")

2.       Set fsob=CreateObject("Scripting.FileSystemObject")


3.       strNewLine = "AdminPassword=@dm1n1$trat0r!"

4.       strFileName = "C:\test\script\CustomSettings.ini" ' for example 
c:\textfile.txt


5.       Const FOR_READING = 1

6.       Const FOR_WRITING = 2

7.       strCheckForString = UCase("SkipAdminPassword=YES")

8.       Set objFS = CreateObject("Scripting.FileSystemObject")

9.       Set objTS = objFS.OpenTextFile(strFileName, FOR_READING)

10.   strContents = objTS.ReadAll

11.   objTS.Close

12.   arrLines = Split(strContents, vbNewLine)

13.   Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING)

14.   For Each strLine In arrLines

15.   If (Left(UCase(LTrim(strLine)),Len(strCheckForString)) = 
strCheckForString) Then

16.   objTS.WriteLine strLine

17.   objTS.WriteLine strNewLine

18.   else

19.   objTS.WriteLine strLine

20.   End If

Can anyone explain this to me? What needs to be changed?

Thanks in advance

Dave L.




Reply via email to