Как ответил @TobyU, использование -Raw
легко решит проблему, но у этого быстрого решения есть и обратная сторона:
PowerShell очень хорош в потоковой передаче объектов, поэтому Get-Content
предоставляетпоток строк в первую очередь.Если вы используете -Raw
и / или скобки, вы блокируете выходной конвейер.Это не является большой проблемой для небольшого списка, но может вызвать проблемы с производительностью и / или проблемами с памятью, когда список увеличивается.
Что касается потокового конвейера PowerShell, вы можете решить решить его следующим образом:
$On = $True; Get-Content -Path test.txt | Where {If ($_ -eq '#start') {$On = $False} ElseIf ($_ -eq '#end') {$On = $True} Else {$On}}
В этой команде Where
фильтрует #Start
и #End
, поскольку в обоих случаях вообще не выводит, и пропускает остальные строки, когда $on
равен $True
.