Posso determinar se uma função do PowerShell está sendo executada como parte de um pipeline?

Uma função do PowerShell pode determinar se está sendo executada como parte de um pipeline? Eu tenho uma função que preenche uma matriz com instâncias deFileInfo que eu gostaria de "render" para o pipeline se a função estiver sendo executada dessa maneira ou produzir alguma saída bonita se a função estiver sendo chamada por si mesma a partir da linha de comando.

function Do-Something {
    $file_infos = @()
    # Populate $file_infos with FileInfo instances...

    if (INVOKED_IN_PIPELINE) {
        return $file_infos
    }
    else {
        foreach ($file_info in $file_infos) {
            write-host -foregroundcolor yellow $file_info.fullname
        }
    }
}

Basicamente, estou tentando descobrir como implementarINVOKED_IN_PIPELINE. Se for executado em um pipeline (por exemplo,Do-Something | format-table fullname), Eu simplesmente renderia a matriz, mas se executada diretamente (por exemplo,Do-Something), imprimiria bastante o conteúdo da matriz no console.

Existe uma maneira de fazer isso? Se houver uma maneira mais "idiomática" de conseguir esse tipo de coisa, eu também estaria interessado em saber.

questionAnswers(2)

yourAnswerToTheQuestion