Compartir a través de


UseProcessBlockForPipelineCommand

Nivel de gravedad: Advertencia

Descripción

Las funciones que admiten la entrada de canalización siempre deben controlar la entrada de parámetros en un bloque de proceso. El comportamiento inesperado puede dar lugar si la entrada se controla directamente en el cuerpo de una función donde los parámetros declaran la compatibilidad con la canalización.

Ejemplo

Incorrecto

Function Get-Number
{
    [CmdletBinding()]
    Param(
        [Parameter(ValueFromPipeline)]
        [int]
        $Number
    )

    $Number
}

Resultado

PS C:\> 1..5 | Get-Number
5

Correcto

Function Get-Number
{
    [CmdletBinding()]
    Param(
        [Parameter(ValueFromPipeline)]
        [int]
        $Number
    )

    process
    {
        $Number
    }
}

Resultado

PS C:\> 1..5 | Get-Number
1
2
3
4
5