0
「查找和替換」功能正在刪除文件的內容,而不是按照預期進行。
詳細
我在PowerShell中的工作與正則表達式的值和具有這樣的功能,旨在找到一個特定的正則表達式字符串,並用另一個替換。最初,該功能工作得很好;但是,現在它將刪除目標文件的所有內容並將它們保存爲空文件。我試了好幾個小時才弄清楚什麼是錯的。不幸的是,當它按照預期工作時,我沒有保存該函數的副本,所以我沒有什麼可以比較它,並且我的大多數故障排除都失敗了。我希望另一組眼睛能夠幫助發現問題。
代碼:
Function StringReplace
{
$files = GCI -path "$path\*.config" -Recurse | where-object -InputObject $_ -Pattern ([regex]::Escape($oldString)) -Quiet) -eq $true)
foreach ($file in $files) {
(GC $file.PSPath) |
foreach-object { $_.Replace($oldString, $newString) |
set-content $file.PSPath
}
}
$oldString = "s+r/ng"
$newString = "s/R+ng"
$path = "C:\*\somefoldername"
在很多我的排查,我發現所有的$值如預期;然而,一旦達到Get-Content,就會發生一些事情,並且複製$文件值,以便存儲每個文件/內容的大約20個副本。我不確定我做錯了什麼,但我會非常感謝任何和所有的輸入。
謝謝大家提前
如果您確實想要手動逐個輸出字符串,則可以使用「Add-Content」或「Out-File -Append」代替「Set-Content」 –