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

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

Забанен


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

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


AlexanderSh88, зачем прыгать с форума на форум? Тем паче, что у Вас возникают сложности с запуском сценариев PowerShell. Простите за резкость, но Вы бы для начала разобрались с последним, да и неплохо было бы Вам самостоятельно что-то начать делать. Ваша же задача решается примерно так же, как и задача с блоками. Например:
Код: Выделить весь код
param(
  [Parameter(Mandatory=$true, Position=0)]
  [ValidateScript({Test-Path $_})]
  [String]$InputFile,
  
  [Parameter(Mandatory=$true, Position=1)]
  [ValidateNotNullOrEmpty()]
  [String]$Pattern,
  
  [Parameter(Mandatory=$true, Position=2)]
  [String]$OutputFile
)

$InputFile = Convert-Path $InputFile
$Pattern = $Pattern.Replace('(', '\(').Replace(')', '\)')
$getBlocks = {param([Int32]$context)
  Select-String $InputFile -Pattern "^" |
  Where-Object {$_.LineNumber -gt ($context - 5) -and $_.LineNumber -le ($context + 4)} |
  Select-Object Line -ExpandProperty Line
}

$(if (($$ = Select-String $InputFile -Pattern $Pattern -CaseSensitive |
  Select-Object LineNumber -ExpandProperty LineNumber) -is [Array]) {
  $$ | ForEach-Object { &$getBlocks $_ }
}
elseif ($$ -ne $null) { &$getBlocks $$ }) | Out-File $OutputFile -Encoding ASCII
Пример использования:
Код: Выделить весь код
PS E:\sandbox> .\source.ps1 list.txt "Comedi 1987" C:\work\comedy.txt
Или:
Код: Выделить весь код
PS E:\sandbox> .\source.ps1 list.txt "terminator (fantastika)" C:\work\fantastika.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:25, 19-02-2016 | #2