read not exist create content powershell

not - powershell read file



PowerShell: Almacenar todo el contenido del archivo de texto en variable (5)

Powershell 2.0:

(ver explicación detallada aquí)

$text = Get-Content $filePath | Out-String

El IO.File.ReadAllText no funcionó para mí con una ruta relativa, busca el archivo en %USERPROFILE%/$filePath lugar del directorio actual (cuando se ejecuta desde Powershell ISE al menos):

$text = [IO.File]::ReadAllText($filePath)

Powershell 3+:

$text = Get-Content $filePath -Raw

Me gustaría utilizar PowerShell para almacenar todo el contenido de un archivo de texto (incluida la línea en blanco final que puede existir o no) en una variable. También me gustaría saber el número total de líneas en el archivo de texto. ¿Cuál es la forma más eficiente de hacer esto?


En una nota lateral, en PowerShell 3.0 puede usar el cmdlet Get-Content con el nuevo interruptor Raw:

$text = Get-Content ./file.txt -Raw


Get-Content toma datos y los coloca en una matriz, línea por línea. ¿Asumiendo que no hay otros requisitos especiales que usted enumerado, podría simplemente guardar su contenido en una variable?

$file = Get-Content c:/file/whatever.txt

Ejecutando solo $file devolverá el contenido completo. Luego puede hacer $file.Count (porque las matrices ya tienen un método de conteo incorporado) para obtener el n. ° de líneas.

¡Espero que esto ayude! No soy un experto en scripts, pero me pareció más fácil que muchas de las cosas anteriores.


Para obtener todo el contenido de un archivo:

$content = [IO.File]::ReadAllText("./test.txt")

Número de líneas:

([IO.File]::ReadAllLines("./test.txt")).length

o

(gc ./test.ps1).length

Tipo de hackish para incluir línea vacía final:

[io.file]::ReadAllText("./desktop/git-python/test.ps1").split("`n").count


Un acercamiento más a la lectura de un archivo que me gusta me gusta se refiere de varias maneras como notación variable o sintaxis variable e involucra simplemente encerrar una especificación de archivo dentro de las llaves precedidas por un signo de dólar, a saber:

$content = ${C:file.txt}

Esta notación puede usarse como un valor L o un valor R ; por lo tanto, podría escribir fácilmente en un archivo con algo como esto:

${D:/path/to/file.txt} = $content

Otro uso útil es que puede modificar un archivo en su lugar sin un archivo temporal y sin subelementos, por ejemplo:

${C:file.txt} = ${C:file.txt} | select -skip 1

¡Inicialmente me fascinó esta notación porque era muy difícil encontrar algo al respecto! Incluso la especificación de PowerShell 2.0 lo menciona solo una vez mostrando solo una línea que lo usa, pero sin ninguna explicación ni detalles de uso. Posteriormente, encontré esta entrada de blog en variables de PowerShell que ofrece algunas buenas ideas.

Una nota final sobre el uso de esto: debe usar una designación de unidad, es decir ${drive:filespec} como lo he hecho en todos los ejemplos anteriores. Sin la unidad (por ejemplo, ${file.txt} ) no funciona. No hay restricciones en la especificación de archivos en esa unidad: puede ser absoluta o relativa.