Совместное использование нескольких функций Powershell

#windows #function #powershell #pipe

#Windows #функция #powershell #конвейер

Вопрос:

У меня это происходит

 Function A($data){
#Function accepts $data which is Get-Content of a file
#Function does some stuff and then return 
#Function return data as Strin&
}

Function B($data){
#This Function takes data &iven from Function A, manipulate it and return custom object
}

$Function C ($data1, $data2){
#This function Takes 2 custom objects created from Function B and prints out some data
}

#For this is to work i need to do this for example:
$file = 'c:test.txt'

$data1 = A (Get-Content $file1)
$data1 = B ($data1)

#Same thin& for data2 and then use function C:

C -data1 $data2 -data2 data2
  

хотя это работает, я хотел бы использовать конвейер, должно быть, я использую его неправильно

 Get-Content $file1 | A | B 
  

Очевидно, это привело бы к ошибкам.
кто-нибудь может мне помочь в этом?

Комментарии:

1. Определенно, я делаю это неправильно. Следует прочитать больше, например, это или это

2. ПОЖАЛУЙСТА, прочтите справку по расширенным функциям. вам необходимо тщательно структурировать свои функции для работы в конвейере. на эту тему есть МНОГО статей… [ ухмылка ]

3. Что вы искали? Это очень распространенное явление во всем PowerShell. — ‘значение функций powershell из [ipline’

Ответ №1:

Продолжение моего комментария. Например:

Создание функций PowerShell, поддерживающих конвейер

ValueFromPipeline Давайте начнем с функции для выполнения некоторых тестов.

 #re&ion Test Function 

Function Test-Object  
{
    [cmdletbindin&()]
    Param 
    (
        [parameter(ValueFromPipeline)][int[]]$Inte&er
    )

    Process  
    {
        $PSItem
    }
}

#endre&ion Test Function