funcion para buscar cadena de texto en un archivo con powershell

Todos los lenguajes de programación disponen de funciones que nos facilitan la vida a los programadores, pero están suelen ser muy limitadas. Por este motivo y por muchos otros siempre es necesario definir nuestras propias funciones.

Hoy os voy a contar como definir una función en powershell con un ejemplo muy útil: buscar una cadena de texto en un archivo.

Definición de la función:

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
}

Como véis la función se define con la palabra “function” seguido del nombre que le queráis poner a la función. Después entre paréntesis se indican los parámetros que sean necesarios, en caso de no necesitar parámetros, los paréntesis deben ir vacíos.

Después entre llaves va el código de la función. En este caso lo que hace la función es leer el archivo pasado por parámetro y busca el texto que también se pasa por parámetro.

El resultado de la función (que no imprescindible) se indica con el comando “return” seguido del valor a devolver. En el caso de la función del ejemplo, devuelve $false o $true, dependiendo de si se ha encontrado la cadena de texto buscada o no.

Ejemplo de llamada a la función:

buscarCadena "texto a buscar" "c:\archivo.txt"

El resultado de esta llamada se puede usar de muchas maneras, por ejemplo, en un if o asignando el resultado a una variable.

if (buscarCadena "texto a buscar" "c:\archivo.txt") { ..... }

$existeCadena = buscarCadena "texto a buscar" "c:\archivo.txt"

Un comentario en “funcion para buscar cadena de texto en un archivo con powershell

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *