2011-02-10 65 views
11

Me gustaría agregar caracteres al final de cada línea de texto en un documento .txt.Agregue texto a cada línea en el archivo de texto usando PowerShell

#Define Variables 
$a = c:\foobar.txt 
$b = get-content $a 

#Define Functions 
function append-text 
    { 
    foreach-Object 
     { 
     add "*" 
     } 
    } 

#Process Code 
$b | append-text 

Algo así. Esencialmente, cargue un archivo de texto dado, agregue un "*" al final de cada línea de texto en ese archivo de texto, guárdelo y ciérrelo.

Respuesta

4

Soemthing como esto debería funcionar:

function append-text { 
    process{ 
    foreach-object {$_ + "*"} 
    } 
    } 
+2

Si usa un filtro, no necesita el bloque 'process' en absoluto, p. 'filter Append-Text {" $ _ * "}' –

+0

¡Esto funciona genial! ¿Es posible agregar una verificación de redundancia en esto? ¿Algo que compruebe la presencia de "*", y si no está al final de una línea, entonces agréguelo? – Joshua

+2

Sure, 'filter Append-Text {if ($ _ -match '\ * \ s * $') {$ _} else {" $ _ * "}}' –

16

Sin función necesaria. Esto lo haría: $ b | foreach {$ _ + "*"}

+3

Y si tus muñecas te molestan' gc c: \ foobar.txt |% {"$ _ *" } '. Eso es usar alias en gran medida, pero tiendo a usar PowerShell para muchos puntos únicos en la línea de comando y cuanto menos tengo que escribir, más mis muñecas no me odian. :-) –

+0

Esto definitivamente funciona, pero esperaba mantenerlo en formato de función para poder llamarlo de nuevo si fuera necesario. Probablemente tengas razón, mi objetivo en este script probablemente hace innecesaria la función. – Joshua

1
PS> (gc c:\foobar.txt) -replace '\S+$','$&*' 
-1

simplemente tomó aproximadamente 2 horas a trabajar hacia fuera, nunca habían utilizado Powershell antes, pero aquí van:

cls 
#Define Functions 
(gc g:\foobar.txt) -replace '\S+$','$& 1GB RAM 1x 1 GB Stick' | out-file "g:\ram 6400s.txt" 

Cambia la ubicación del archivo. El primer archivo es el archivo que desea editar. El secound es el archivo de salida.

+0

No entiendo por qué " \ S "(espacio no blanco)? Creo que". + "Sería el camino a seguir. –

Cuestiones relacionadas