0

我正在尝试使用降序文件夹结构中的 .xml 文件扩展名更新所有文件,但我的脚本失败(可能是由于缺乏知识)。任何帮助都会很棒:

#Example of syntax
#=======================
# seekAndReplace -FilePath "\\sitecollection\newroot\pages" -FileExtension 
# "*.xml" -OldAddress "http://oldroot/sites/blank/" -NewAddress "http://newroot/sites/blank"
#


function seekAndReplace {
Param(
[string]$FilePath,
[string]$FileExtension,
[string]$OldAddress,
[string]$NewAddress
)
$files = Get-ChildItem $FilePath -Filter $FileExtension
    foreach ($file in $files) {
        (Get-Content $file.fullname) |
        ForEach-Object {$_ -replace $OldAddress,$NewAddress} |
        Set-Content $file.fullname
    } #end foreach
} #end function
4

1 回答 1

4

这有帮助吗?注意Regex Escape 方法的使用。您需要它来转义特殊字符。

Get-ChildItem $FilePath -Filter $FileExtension | Foreach-Object {
        (Get-Content $_.fullname) -replace [regex]::Escape($OldAddress),$NewAddress | Set-Content $_.fullname
}
于 2013-01-30T06:59:39.170 回答