2015-02-12 82 views
0

上午所有,PowerShell脚本为进入文本文件的目录中并替换字符

我试图找出如何进入一些文本文件的目录中,并用以下替换字符:

'BS'= '\'

'FS'= '/'

'CO'= ':'

我设法去迄今:

(get-content C:\users\x\desktop\info\*.txt) | foreach-object {$_ -replace "bs", "\"} | set-content C:\Users\x\desktop\info\*.txt 

我有6个文本文件,所有都带有一行文本,上面的脚本将文本行复制到所有文本文件中。所以我最终得到的是6个文本文件,每个文本有6行文本,我需要6个文本文件和1行原始文本。

如果这是有道理的,有没有人有任何指示呢?

回答

0

YThis应该做的伎俩:

Get-ChildItem C:\users\x\desktop\info\*.txt | ForEach-Object {(Get-Content $_.PSPath) | Foreach-Object {$_ -replace "bs", "\" -replace "fs", "/" -replace "co", ":"} | Set-Content $_.PSPath} 

的原因你没有充当您所预期的,是因为你在哪里字面上把所有的内容进行使用get-内容的所有文件。这就像所有文件中所有文本的字符串连接一样。

您首先必须获取文件列表,然后将其转换为foreach以获取每个文件的内容,然后替换要替换的内容。

+0

了你!欢呼你的帮助。 – user3586898 2015-02-12 09:09:34

1

其他一些例子,应该做同样的伎俩:)

$fileName = Get-ChildItem "C:\users\x\desktop\info\*.txt" -Recurse 

$filename | %{ 
    (gc $_) -replace "BS","\" -replace "FS","/" -replace "CO",":" |Set-Content $_.fullname 
} 
相关问题