En mi día a día como administrador de sistemas, he necesitado muchas veces buscar cadenas de texto dentro de ficheros .txt, pues bien automatizar este proceso en Powershell me ha facilitado mucho la tarea en cuestión.
La función en cuestión es la siguiente:
function buscarCadena([String]$cadena , [String]$file) {
# Se verifica que el fichero existe y la cadena no es nula
if ((Test-Path -Path $file) -and $cadena) {
$list = Get-Content $file
# Si se encuentra la cadena se devuelve true
if ($list -match $cadena) {
return $true
}
}
# Se devuelve false si no encuentra nada o el fichero no existe
return $false
}
Esta función la podremos incorporar a nuestros scripts y así poder usar las cadenas encontradas en nuestro fichero de texto para realizar otras tareas. Os ilustraré con un pequeño ejemplo de un fichero de texto con nombres de usuario en el que buscaremos un nombre X y lo mostraremos en pantalla si se encuentra en el fichero de texto.
Fichero de texto para el ejemplo ubicado en C:\temp\ejemplo.txt
adri_1
jonathan
ejemplo
Código de ejemplo:
function buscarCadena([String]$cadena , [String]$file) {# Se verifica que el fichero existe y la cadena no es nulaif ((Test-Path -Path $file) -and $cadena) {$list = Get-Content $file# Si se encuentra la cadena se devuelve trueif ($list -match $cadena) {return $true}}# Se devuelve false si no encuentra nada o el fichero no existereturn $false}
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
#capturamos el nombre a buscar en el fichero de ejemplo
$nom= [Microsoft.VisualBasic.Interaction]::InputBox("Introduce el nombre a buscar: ")
#almacenamos el fichero en una variable
$fichero = "c:\temp\ejemplo.txt"
#ejecutamos la función con los parametros capturados
$resultado=buscarcadena $nom $fichero
#Mostramos por pantalla el resultado siendo True o False
Write-Host "Fichero encontrado = $resultado"
Bueno, y hasta aquí esta sencilla función aplicada en un pequeño script de búsqueda de usuarios en un fichero de texto.
Espero que os haya sido de gran ayuda ;)
No hay comentarios:
Publicar un comentario