2011-02-10 88 views
11

Vorrei aggiungere caratteri alla fine di ogni riga di testo in un documento .txt.Aggiungere testo a ogni riga nel file di testo utilizzando PowerShell

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

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

#Process Code 
$b | append-text 

Qualcosa del genere. In sostanza, carica un determinato file di testo, aggiungi un "*" alla fine di ogni singola riga di testo in quel file di testo, salva e chiudi.

risposta

4

Soemthing come questo dovrebbe funzionare:

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

Se si utilizza un filtro, non è necessario il blocco 'processo', ad es. 'filter Append-Text {" $ _ * "}' –

+0

Funziona alla grande! È possibile aggiungere un controllo di ridondanza in questo? Qualcosa che verificherebbe la presenza di "*", e se non si trova alla fine di una riga, quindi aggiungerlo? – Joshua

+2

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

16

Nessuna funzione necessaria. Questo avrebbe fatto: $ b | foreach {$ _ + "*"}

+3

E se i polsi ti disturbano 'gc c: \ foobar.txt |% {" $ _ * " } '. Significa usare gli alias pesantemente, ma io tendo ad usare PowerShell per un sacco di pezzi unici alla riga di comando e meno devo digitare più i miei polsi non mi odiano. :-) –

+0

Questo funziona sicuramente, ma speravo di mantenerlo in formato funzione in modo che potessi chiamarlo di nuovo, se necessario. Probabilmente hai ragione, il mio obiettivo su questo script rende probabilmente superfluo l'uso di una funzione. – Joshua

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

semplicemente preso circa 2 ore per lavorare fuori, non aveva mai usato Powershell prima, ma qui si va:

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

Modificare il percorso del file. Il primo file è il file che vuoi modificare. Il secondo è il file di output.

+0

Non capisco, perché " \ S "(non spazi bianchi)? Penserei". + "Sarebbe la strada da percorrere. –

Problemi correlati