Search and replace in files with specific extension using VBScript

This script is useful if you want to replace a certain string only in files with a specific extension. In this tutorial we will replace a string “Replace Me” with “This is replaced” only in files that have the “.txt” and “.csv” extensions, and another string “Hello” with “Bye” in files that only have “.vbs” extension.

The code is as follows:


Const ForReading = 1
Const ForAppending = 2
Dim FileName, search_repl, search_find, search_find2, path_into_search

path_into_search = "C:\Users\user\Desktop\Tests"
search_find = "Replace Me"
search_find2 = "Hello"
search_repl = "This is replaced"
search_repl2 = "Bye"

set FSO = createobject("Scripting.FileSystemObject")
set folder = FSO.getfolder(path_into_search)

for each file in folder.files
Filename = folder & "\" & file.name
if lcase(right(Filename,3))="txt" OR lcase(right(Filename,3))="csv" then
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile (FileName, ForReading)
strText= objFile.ReadAll
objFile.Close

strText=replace(strText,search_find,search_repl,1,-1,1)

Set objTextFilen = objFSO.OpenTextFile(FileName, ForAppending, True)
objTextFilen.Write(strText)
objTextFilen.Close
End If

if lcase(right(Filename,3))="vbs" then
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile (FileName, ForReading)
strText= objFile.ReadAll
objFile.Close

strText=replace(strText,search_find2,search_repl2,1,-1,1)

Set objTextFilen = objFSO.OpenTextFile(FileName, ForAppending, True)
objTextFilen.Write(strText)
objTextFilen.Close
End If
Next

Leave a comment

Your email address will not be published. Required fields are marked *

9 + 17 =