Объект измерения не выводит правильный результат - PullRequest
0 голосов
/ 19 сентября 2019

Я не могу понять, почему это привело бы к 0?

[String] $outputVariable = "INFO: Configuring the component HPOvPerlA";
write-host $outputVariable | Select-String -pattern "INFO:" -SimpleMatch | Measure-Object -Line;
                        Lines Words                         Characters                    Property
                        ----- -----                         ----------                    --------
                            0

Где, как будто я бегу ниже, я получаю правильный результат.

"INFO: Configuring the component HPOvPerlA" | Select-String -pattern "INFO:" | Measure-Object -Line;
                        Lines Words                         Characters                    Property
                        ----- -----                         ----------                    --------
                            1

Единственное различие, которое я вижу, это write-host вместе с переменной $, но, по моему мнению, это не должно иметь никакого значения.

Любой намек?

1 Ответ

1 голос
/ 19 сентября 2019

Проблема, с которой вы столкнулись, - это именно то, что вы определили, но, по-видимому, она отклонена, и это Write-Host.

Write-Host отправляет содержимое $outputVariable / string на консоль, однако вашНамерение состоит в том, чтобы отправить его по конвейеру.Для этого вы должны использовать Write-Output.

Примеры:

[String] $outputVariable = "INFO: Configuring the component HPOvPerlA";
Write-Output $outputVariable | Select-String -Pattern "INFO:" -SimpleMatch | Measure-Object -Line;
Write-Output "INFO: Configuring the component HPOvPerlA" | Select-String -Pattern "INFO:" | Measure-Object -Line | Select-Object -ExpandProperty Lines;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...