:confused: I have created a script which searches for a value in a text file and replaces it with the computername varible. The script excutes fine, but when you run it from a msi package it replaces the value with blank not the computer name. I have tried moving it around in the sequence and run it as a deferred and immediate excution custom action. I then change the script to msgbox the computername this does not work for some reason from install the msi im baffled can anyone suggest anything see script below.
Dim FileName, Find, ReplaceWith, FileContents, dFileContents
On Error Resume next
Set objWshNetwork = WScript.CreateObject("WScript.Network")
ComputerName = objWshNetwork.ComputerName
MsgBox ComputerName
Find = "COMPUTERNAME"
ReplaceWith = ComputerName
FileName = "c:\Var\Triarch\ipcroute"
'Read source text file
FileContents = GetFile(FileName)
'replace all string In the source file
dFileContents = replace(FileContents, Find, ReplaceWith, 1, -1, 1)
'Compare source And result
if dFileContents <> FileContents Then
'write result If different
WriteFile FileName, dFileContents
' Wscript.Echo "Replace done."
If Len(ReplaceWith) <> Len(Find) Then 'Can we count n of replacements?
' Wscript.Echo _
' ( (Len(dFileContents) - Len(FileContents)) / (Len(ReplaceWith)-Len(Find)) ) & _
' " replacements."
End If
Else
' Wscript.Echo "Searched string Not In the source file"
End If
'Read text file
function GetFile(FileName)
If FileName<>"" Then
Dim FS, FileStream
Set FS = CreateObject("Scripting.FileSystemObject")
on error resume Next
Set FileStream = FS.OpenTextFile(FileName)
GetFile = FileStream.ReadAll
End If
End Function
'Write string As a text file.
function WriteFile(FileName, Contents)
Dim OutStream, FS
on error resume Next
Set FS = CreateObject("Scripting.FileSystemObject")
Set OutStream = FS.OpenTextFile(FileName, 2, True)
OutStream.Write Contents
End Function