Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


А какой смысл писать что-то вроде "000Xstart"? Если следовать логике регулярных выражений достаточно указать числа для шаблона подобного "[X|Y]start", относительно чего в свою очередь ищем индексы строк, из которых составляется диапазон блока. Иными словами, если наш текст:
Код: Выделить весь код
<subject>Video films</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-cover.jpg" alt="Video films" />
avi | 0:15:44 | 640x480 | 120Mb
<!--more-->
<categories>terminator (fantastika)</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-tumble.jpg" alt="Video films" />
<blockquote><a href="http://k2s.cc/file/dd5ddk87609aa8c40/0001start.wmv" target="_blank">Video films</a></blockquote></center>
------------------------------------------------------------
<subject>Boevik</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-cover.jpg" alt="Boevik" />
avi | 0:35:44 | 640x480 | 120Mb
<!--more-->
<categories>Comedi 1987</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-tumble.jpg" alt="Boevik" />
<blockquote><a href="http://k2s.cc/file/dd5ddkuiyi559aa8c40/0002start.wmv" target="_blank">Boevik</a></blockquote></center>
------------------------------------------------------------
<subject>Serial nash</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-cover.jpg" alt="Serial nash" />
wmv | 0:41:48 | 640x480 | 120Mb
<!--more-->
<categories>terminator (fantastika)</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-tumble.jpg" alt="Serial nash" />
<blockquote><a href="http://k2s.cc/file/dd5ddkdfgf59aa8c40/0003start.wmv" target="_blank">Serial nash</a></blockquote></center>
------------------------------------------------------------
То:
Код: Выделить весь код
param(
  [Parameter(Mandatory=$true, Position=0)]
  [ValidateScript({Test-Path $_})]
  [String]$FileName,
  
  [Parameter(Mandatory=$false)]
  [Int32]$Begin = 1,
  
  [Parameter(Mandatory=$true, Position=1)]
  [Int32]$End
)

$FileName = Convert-Path $FileName
if ($Begin -gt $End) {
  Write-Warning "index is out of range."
  break
}

$$ = Select-String $FileName -Pattern (
  '[{0:D4}|{1:D4}]start.wmv' -f $Begin, $End
) | Select-Object LineNumber
$top = $$[0].LineNumber - 8
$end = $$[1].LineNumber + 1

Select-String $FileName -Pattern "^" |
Where-Object {$_.LineNumber -gt $top -and $_.LineNumber -le $end} |
Select-Object Line -ExpandProperty Line |
Out-File out.txt -Encoding ASCII
И далее:
Код: Выделить весь код
PS E:\sandbox> .\source.ps1 D:\test\myfile.txt -Begin 2 -End 3
Получим в папке E:\sandbox файл out.txt следующего содержания:
Код: Выделить весь код
<subject>Boevik</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-cover.jpg" alt="Boevik" />
avi | 0:35:44 | 640x480 | 120Mb
<!--more-->
<categories>Comedi 1987</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-tumble.jpg" alt="Boevik" />
<blockquote><a href="http://k2s.cc/file/dd5ddkuiyi559aa8c40/0002start.wmv" target="_blank">Boevik</a></blockquote></center>
------------------------------------------------------------
<subject>Serial nash</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-cover.jpg" alt="Serial nash" />
wmv | 0:41:48 | 640x480 | 120Mb
<!--more-->
<categories>terminator (fantastika)</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-tumble.jpg" alt="Serial nash" />
<blockquote><a href="http://k2s.cc/file/dd5ddkdfgf59aa8c40/0003start.wmv" target="_blank">Serial nash</a></blockquote></center>
------------------------------------------------------------
Чтобы данные считываль с самого начала:
Код: Выделить весь код
PS E:\sandbox> .\source.ps1 D:\test\myfile.txt -End 2
Получим:
Код: Выделить весь код
<subject>Video films</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-cover.jpg" alt="Video films" />
avi | 0:15:44 | 640x480 | 120Mb
<!--more-->
<categories>terminator (fantastika)</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-tumble.jpg" alt="Video films" />
<blockquote><a href="http://k2s.cc/file/dd5ddk87609aa8c40/0001start.wmv" target="_blank">Video films</a></blockquote></center>
------------------------------------------------------------
<subject>Boevik</subject>
<center><img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-cover.jpg" alt="Boevik" />
avi | 0:35:44 | 640x480 | 120Mb
<!--more-->
<categories>Comedi 1987</categories>
<tags>tag1, tag2, tag3</tags>
<img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-tumble.jpg" alt="Boevik" />
<blockquote><a href="http://k2s.cc/file/dd5ddkuiyi559aa8c40/0002start.wmv" target="_blank">Boevik</a></blockquote></center>
------------------------------------------------------------
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:23, 18-02-2016 | #2