2

我希望能够在 XML 注释之间识别(和替换)XML 元素。例如:

<!-- between here -->
<add key="userdefined1" value="something1" />
<add key="userdefined2" value="something2" />
<add key="userdefined3" value="something3" />
<!-- between here -->

我使用注释的原因是因为这是来自 .NET Web 项目的 web.config 文件。我不使用自定义配置部分的原因是该应用程序已有多年历史,并且有数千个对这些键的现有引用,因此更改它们的访问方式可能很麻烦。

4

1 回答 1

1

这可能不是最佳的,但它有效。这里有两个常量,字符串和文件名。

$comment = '<!-- between here -->'
$start = $false
ForEach ($l in (Get-Content .\testfile.config)) { 
        if (-not $start -and $l -notmatch $comment) {continue}
        if (-not $start -and $l -match $comment ) { $start = $True }
        elseif ($start -and  $l -notmatch $comment) { echo $l }
        elseif ($start -and  $l -match $comment) { break }
}

作为备选:

$comment = '<!-- between here -->'
$file = '.\testfile.config'
Select-String -pattern $comment -path $file | % { if (-not $b) { $b=$_.LineNumber} else { $e=$_.LinenUmber-2}}
Get-Content $file | Select-Object -Index ($b..$e)
于 2014-04-21T20:11:02.063 回答