Я хочу использовать метод, приведенный в ответе на этот вопрос: PowerShell - Удалять все строки текстового файла, пока не будет найдена определенная строка
Однако я не получаю строка из «Get-Content»; Я получаю это от "Out-String". Как я могу преобразовать мою переменную «Out-String» в формат «Get-Content» без необходимости временного файла «Set-Content» / «Get-Content»? Или как я могу получить тот же конечный результат, даже не конвертируя?
Мне очень больно, что «Get-Member» для переменной из «Out-String» или «Get-Content» возвращает TypeName System.String, но вы не можете использовать их таким же образом ...
Вот упрощенный код, который я пытался понять - давайте использовать это:
# Let's work with the text from 'Get-Help' output:
$myString = (Get-Help | out-string)
# I only want the text from the "SEE ALSO" section:
$cut = $myString.Where({ $_ -like ("*SEE ALSO*") },'SkipUntil')
$cut # This shows the whole thing!!! :-(
$cut | gm | findstr TypeName # says 'TypeName: System.String'
# Dirty conversion to "Get-Content" format:
Set-Content "tmp.file" -value $cut
$recut = (Get-Content "tmp.file").Where({ $_ -like ("*SEE ALSO*") },'SkipUntil')
$recut # Now this shows what I want, even though the below returns 'TypeName: System.String' as well !!!
(Get-Content "tmp.file") | gm | findstr TypeName