Powershell 删除HTML中的区域

Powershell 删除HTML中的区域,powershell,powershell-core,Powershell,Powershell Core,我想在HTML中删除一个自我强加的区域。我已经计算出了正确的正则表达式,我已经在中证明了这一点,并且突出显示了正确的部分 我在多行模式下运行了此设置,并已将此设置预先设置为PowerShell正则表达式字符串 Get-ChildItem (Get-Item -Path ".\" -Verbose).FullName -Recurse -Filter *.html | Foreach-Object { Write-Host "Checking "$_.FullName $cont

我想在HTML中删除一个自我强加的区域。我已经计算出了正确的正则表达式,我已经在中证明了这一点,并且突出显示了正确的部分

我在多行模式下运行了此设置,并已将此设置预先设置为PowerShell正则表达式字符串

Get-ChildItem (Get-Item -Path ".\" -Verbose).FullName -Recurse -Filter *.html |
Foreach-Object {
    Write-Host "Checking "$_.FullName
    $content = Get-Content $_.FullName
    $content = $content -replace "(?m)(^.*\#region REMOVE.*)[.|\n|\W|\w]*(^.*\#endregion REMOVE.*)",""
    Set-Content $content -Path $_.FullName
}
遗憾的是,该区域未被删除,尽管文件已被触摸。

来自:

Get-Content cmdlet获取位于该位置的项的内容 由路径指定,例如文件中的文本。上面写着 内容一次一行,并返回对象的集合,每个 其中的表示一行内容

所以您的正则表达式是在数组上执行的,而不是在文件内容的字符串上执行的。更改为:

$content = [System.IO.File]::ReadAllText($_.FullName);

而且它会起作用。

效果很好!谢谢你。