我一直在寻找答案,但我无法解决。 在我的情况下,我需要替换.htm文件中的字符串。字符串跨多行,例如:
</table>
<p>
<table border="1">
我尝试了以下但是它不起作用,我知道因为文本显示在几行上。
Get-Content test1.htm )| ForEach{ $_ -replace '</table><p><table border="1">', "" } | Set-Content test2.htm
我不知道我该怎么做。
答案 0 :(得分:0)
试试这个:
(Get-Content 'filename').replace('toreplace', 'replacewith') | Set-Content 'filename'
答案 1 :(得分:0)
好的,有人设法解决了,所以我发布了答案。 cule包括Poweshell溢出操作符: \ s + 。
所以我的最终代码如下:
$filenames = @("test1.htm")foreach ($file in $filenames) {
$replacementStr = ''
(Get-Content $file | Out-String) |
Foreach-object { $_ -replace '</table>.\s+<p>\s+<table border="1">' , $replacementStr } |
Set-Content test2.htm }