Búsqueda de sitios web

Leer archivo línea por línea en PowerShell


Para leer un archivo línea por línea en Windows PowerShell, use Get-Content para leer el contenido del archivo de texto y luego procese cada línea dentro de un bucle "Para cada". También puede utilizar el método ReadLine() de la clase de biblioteca .NET [System.IO.File] para leer un archivo de texto.

Mientras trabaja en los archivos, debe leer el archivo línea por línea y almacenar la línea en la variable para su posterior procesamiento. Esto se puede lograr fácilmente utilizando los comandos de Windows PowerShell.

En este artículo, analizaremos cómo leer un archivo línea por línea en Windows PowerShell usando Get-Content y cada línea en un archivo de texto para procesarlo.

Lea el archivo línea por línea usando [System.IO.File]

La biblioteca .Net incluye la clase [System.IO.File] que tiene el método ReadLines(). Este método toma una ruta de archivo de texto como entrada y lee el archivo línea por línea.

foreach($line in [System.IO.File]::ReadLines("D:\LogTest\FTP-02\Environement-Variable.txt"))
{
    Write-Output $line
}

En el script de PowerShell anterior, la función ReadLine() lee un archivo de texto y utiliza el bucle foreach para leer el archivo línea por línea y pasarlo a otro para su procesamiento.

El resultado del script de PowerShell anterior lee todo el contenido del archivo línea por línea y lo imprime en la terminal como se muestra a continuación:

What is an environment variable in Windows? How to print environment variables in PowerShell? 
The Environment variables stores information about operating system environment information and programs.
 
This information details include the operating system path, location of the windows installation directory, and a number of p
rocesses used by the operating system. 
PowerShell can access and manage or change environment variables.

The Environment variable in Windows operating system stores that is used by programs. 
Using PowerShell, we can print environment variables on the console.

Consejo interesante: ¡Cómo cambiar el nombre de la parte del nombre del archivo usando PowerShell!

Leer archivo línea por línea usando Get-Content

El cmdlet Get-Content de PowerShell se utiliza para leer el contenido del elemento especificado.

Usando el comando Get-Content, podemos especificar la ruta del archivo para leer el contenido del archivo. Para procesar cada línea individualmente, podemos usar el bucle foreach en PowerShell. Esto nos permite realizar las operaciones necesarias en cada línea del archivo.

$regex = ''

foreach($line in Get-Content -Path D:\LogTest\FTP-02\Environement-Variable.txt) 
{
    if($line -match $regex)
    {
        Write-Output $line
    }
}

En el script de PowerShell anterior, la variable $regex contiene una expresión regular para obtener las líneas específicas del archivo. En este ejemplo, usaremos el valor de expresión regular como ".

El script anterior usa el comando Get-Content para leer un archivo de texto y procesar cada línea usando el bucle foreach en PowerShell. Lee el archivo línea por línea y almacena el contenido en la variable $line.

Utilice la instrucción if en PowerShell para verificar la línea con la expresión regular y si la expresión regular coincide con la línea, imprima la línea.

El resultado del PowerShell anterior para leer el archivo línea por línea usando el comando Get-Content es:

Consejo interesante: ¡Cómo obtener líneas específicas del archivo usando PowerShell!

Si desea que se lean líneas específicas del archivo, proporcione el valor de expresión regular personalizado. Por ejemplo, si desea obtener líneas del archivo que comienza con "El", ejecute el siguiente comando.

$regex = '^The'

foreach($line in Get-Content -Path D:\LogTest\FTP-02\Environement-Variable.txt) 
{
    if($line -match $regex)
    {
        Write-Output $line
    }
}

En el script de PowerShell anterior, hemos especificado el valor de expresión regular como "^El".

Usando el bucle foreach en PowerShell, lee el archivo línea por línea y pasa la línea a la instrucción if para compararla con la expresión regular.

Si la expresión regular coincide con el contenido del archivo, en nuestro caso la línea debe comenzar desde "El", se evaluará como verdadera e imprimirá la línea.

La salida del script de PowerShell anterior leerá el archivo e imprimirá líneas que coincidan con la expresión regular especificada.

The Environment variables stores information about operating system environment information and programs.
The Environment variable in Windows operating system stores that is used by programs. 

Consejo interesante: ¡Cómo contar líneas en el archivo usando PowerShell!

Utilice el interruptor para leer el archivo línea por línea

La instrucción Switch en PowerShell tiene parámetros Regex y File. Usando el parámetro Archivo, podemos proporcionar el nombre del archivo para leer y Regex realiza la expresión regular que hace coincidir el valor con la condición.

$regex = '^The'

switch -regex -File Environement-Variable.txt{ 
  $regex { "$_" } 
}  

En el script de PowerShell anterior, tenemos el archivo Environment-Variable.txt almacenado en el sistema informático. Hemos especificado el valor de expresión regular personalizado como "El".

Usando la instrucción switch en PowerShell, usa el parámetro Archivo para leer el contenido del archivo línea por línea y el parámetro regex para hacer coincidir el valor de la línea con la condición de que la línea debe comenzar con "El".

Si las condiciones de expresión regular se evalúan como verdaderas, imprimirá la línea como se muestra a continuación.

The Environment variables stores information about operating system environment information and programs.
The Environment variable in Windows operating system stores that is used by programs. 

Consejo interesante: ¡Cómo obtener la última línea del archivo usando PowerShell!

Conclusión

Espero que el artículo anterior sobre cómo leer archivos línea por línea en PowerShell le resulte útil.

El cmdlet Get-Content en PowerShell lee el contenido de inmediato, puede causar problemas o congelarse o no responder si el tamaño del archivo es grande. Puede considerar utilizar cualquiera de las tres formas diferentes anteriores para leer el contenido del archivo.

Puede usar Import-CSV para importar archivos CSV y leer archivos csv línea por línea en PowerShell.

Puede encontrar más temas sobre los comandos de PowerShell Active Directory y los conceptos básicos de PowerShell en la página de inicio de ShellGeek.

Artículos relacionados