2015-02-12 89 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 
} 
相關問題