2011-02-10 105 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" 

更改文件位置。第一个文件是您要编辑的文件。其中一个是输出文件。

相关问题