Пользовательская функция PowerShell, которая принимает аргументы и ввод данных - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время у меня есть следующий код ниже, который не работает для меня.Я хотел бы, чтобы он вел себя так

some-output-from-some-function | FILTER_DATA

или

some-output-from-some-function | FILTER_DATA | Filter_01

С помощью функции ниже (без включенного $ id) мне нужно поймать some-output-from-some-функция int ovariable и выполнить ее так (что мне НЕ подходит):

$a = some-output-from-some-function
"$a" | FILTER_DATA

Пожалуйста, помогите.Я хочу, чтобы он был универсальным, а не конкретным для одного или двух переданных аргументов ...

Function FILTER_DATA ($id){
                      [CmdletBinding()]
                      Param(
                            [Parameter(ValueFromPipeline)]
                            $item
                           )
       $item | % {$PSItem.replace("&lt;","<").replace("&gt;",">")} |
               % {$PSItem -replace "<table>", "$description<table class=sortable id=$id" `
                          -replace "</table>","</table></span>" `
}}

1 Ответ

0 голосов
/ 12 февраля 2019

Param () нельзя использовать, если аргументы передаются в объявлении функции.В вашем случае вы передали $ID при объявлении функции.Вы можете использовать приведенный ниже код, который должен работать нормально.

Function FILTER_DATA {
                      [CmdletBinding()]
                      Param(
                            [Parameter(ValueFromPipeline)]$item,
                            $ID
                            )
       $item | % {$PSItem.replace("&lt;","<").replace("&gt;",">")} |
               % {$PSItem -replace "<table>", "$description<table class=sortable id=$id" `
                          -replace "</table>","</table></span>" `}
}

И теперь FILTER_DATA может принимать ввод $Item из конвейера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...