У меня есть несколько отчетов в html-файле. Мне нужно разместить их, чтобы преуспеть и внести некоторые изменения, поэтому я подумал, что могу сделать эти изменения заранее, используя powershell. Некоторые из строк находятся в фиксированных местах, другие - нет, поэтому мне нужно удалить их, заставив скрипт распознать шаблон.Powershell, удалить строки текста из html-файла
фиксированных линий, начиная с верхней: 12-14,17,19,25-27,30-32,40-42 фиксированных линий, начиная от дна: 3-13, 48-60
Шаблон я нужно найти и удалить, это:
<td align="center">random string</td>
<td align="left">random string</td>
<td align="left">random string</td>
<td align="left">random string</td>
<td align="right">random string</td>
для фиксированных линий, которые я нашел, я могу это сделать:
(gc $maindir\Report23.HTML) | ? {(12..14) -notcontains $_.ReadCount} | out-file $maindir\Report23b.HTML
он работает, как он удаляет строки 12-14, но мне нужно, чтобы поставить остаток номеров фиксированной линии в той же команде, и я не могу понять, как это сделать. Также размер файла выходного файла в два раза больше оригинала, который я нахожу странным. Я попытался использовать set-content, который создает размер файла, близкий к оригиналу, но прерывает кодировку текста в определенных частях.
Я понятия не имею, как идти о признания шаблона, хотя ...
Это хорошо работало для удаления фиксированных линий :) О шаблоне я мог бы сделать smth like (gc $ maindir \ Report23.HTML) | Где {$ _ -notmatch '
В итоге я создал макрос excel, но я буду отмечать ваш ответ как принятый, поскольку он охватывает большую часть того, чего я пытался достичь. Только одна коррекция: $ rangefrombottom = ($ length-59) .. ($ length-47) + ($ length-12) .. ($ length-2) – kokotas