I know this isn't batch or vbs, but if the CustomSettings.ini file is the INI 
file you're modifying, check out this link:

https://www.scconfigmgr.com/2014/08/23/using-powershell-to-modify-settings-in-mdt-2013/

If you scroll down towards the bottom of the page, there's some excellent 
guidance and background on using Powershell to do this work. You'll have to 
customize it to the line(s) you're working with.

As an aside, the information there could also be translated to other INI files 
though if CustomSettings.ini isn't what you're working with.


From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of David Landry
Sent: Tuesday, September 12, 2017 1: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.

set objWS = CreateObject("Wscript.Shell")
Set fsob=CreateObject("Scripting.FileSystemObject")

strNewLine = "AdminPassword=@dm1n1$trat0r!"
strFileName = "C:\test\script\CustomSettings.ini" ' for example c:\textfile.txt

Const FOR_READING = 1
Const FOR_WRITING = 2
strCheckForString = UCase("SkipAdminPassword=YES")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.OpenTextFile(strFileName, FOR_READING)
strContents = objTS.ReadAll
objTS.Close
arrLines = Split(strContents, vbNewLine)
Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING)
For Each strLine In arrLines
  If (Left(UCase(LTrim(strLine)),Len(strCheckForString)) = strCheckForString) 
Then
    objTS.WriteLine strLine
    objTS.WriteLine strNewLine
  else
    objTS.WriteLine strLine
  End If

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

Thanks in advance

Dave L.




Reply via email to