2011-02-10 107 views
11

我想在.txt文檔中的每行文本末尾添加字符。使用PowerShell將文本添加到文本文件中的每一行

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

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

#Process Code 
$b | append-text 

就是這樣的。實質上,加載一個給定的文本文件,在該文本文件中的每一行文本的末尾添加「*」,保存並關閉。

回答

4

Soemthing像這應該工作:

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

如果您使用過濾器,則根本不需要`process`塊。 `過濾追加文本{「$ _ *」}` – 2011-02-10 03:49:34

+0

這很好用!有沒有可能在此添加冗餘檢查?一些會檢查「*」的存在,如果它不在行尾,然後添加它? – Joshua 2011-02-10 04:10:34

+2

當然,`過濾追加文本{if($ _ -match'\ * \ s * $'){$ _} else {「$ _ *」}}` – 2011-02-10 04:30:55

16

無功能必需的。這將做到這一點: $ B |的foreach {$ _ + 「*」}

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

只需花了大約2個小時去解決它,從未使用過Powershell之前,但在這裏你去:

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

更改文件位置。第一個文件是您要編輯的文件。其中一個是輸出文件。

相關問題