Vbs para buscar archivo y reemplazar texto dentro de el.

Bueno, por aqui os dejo un script sencillito que sirve para buscar un archivo a partir de un directorio dado.

Una vez encontrado o encontrados (si existe mas de uno con el mismo nombre también lo localiza). Una vez encontrado sustituye texto dentro de el.

Este script ha sido usado para migrar a los usuarios de un servidor con Oracle 9i a otro con Oracle 11g, por eso el fichero que se busca es el tnsnames.ora.

[vb]
strDir = “c:\oracle\”
Const ForReading = 1
Const ForWriting = 2

Set FSO = CreateObject(“Scripting.FileSystemObject”)
Set objDir = FSO.GetFolder(strDir)

getInfo(objDir)

Sub getInfo(pCurrentDir)

For Each aItem In pCurrentDir.Files
If LCase(Right(Cstr(aItem.Name), 12)) = “tnsnames.ora” Then
‘wscript.echo pCurrentDir
wscript.Echo pCurrentDir &”\”& aItem.Name ‘todos los archivos tnsnames.ora
‘Capturo todo el texto del fichero
set objFile =FSO.OpenTextFile(pCurrentDir & “\” & aItem.Name, ForReading)
strText=objFile.ReadAll
objFile.Close
‘reemplazo el texto en la variable
strNewText = Replace(strText, “172.31.0.43″,”172.31.0.13″)
‘escribo de nuevo el fichero con el texto cambiado
Set objFile=FSO.OpenTextFile(pCurrentDir &”\”& aItem.Name, ForWriting)
objFile.WriteLine strNewText
objFile.Close

End If
Next

For Each aItem In pCurrentDir.SubFolders
getInfo(aItem) ‘recursivo
Next

End Sub
[/vb]

Ale, si alguien busca algo parecido ya lo tiene escrito. Dejar un comentario si os apetece.

2 comentarios en “Vbs para buscar archivo y reemplazar texto dentro de el.

  1. Hola David, gracias por el ejemplo, bueno mi consulta es la siguiente:

    Como verifico si existe un determinado archivo en varias carpetas, es decir:

    C:\carpeta_principal
    c:\carpeta_principal\subcarpeta1
    c:\carpeta_principal\subcarpeta1\subcarpeta1.1
    c:\carpeta_principal\subcarpeta1\subcarpeta1.2
    c:\carpeta_principal\subcarpeta2
    c:\carpeta_principal\subcarpeta1\subcarpeta2.1
    c:\carpeta_principal\subcarpeta1\subcarpeta2.2

    Lo que deseo es que busque el archivo en todas las carpetas, el archivo puede estar en la subcarpeta1.1 o en la subcarpeta2.

    Agradeceria mucho que me pudieras apoyar

Los comentarios están cerrados.