Regularnie używam [cmdletbinding()]
w moich funkcjach lub skryptach, ale zawsze znajduję te rzeczy ezoteryczne, może niektórzy z was mogą udostępniać swoje światła.
Według get-help about_Functions_CmdletBindingAttributeco to jest [cmdletbinding()] i jak to działa?
atrybutu CmdletBinding jest atrybutem funkcji, które sprawia, że im działać jak zestawionych cmdlets
ale możemy użyć go na szczycie naszych skryptach, co jest funkcją w tym walizka ? wewnętrzna niejawna "główna" funkcja wywoływana przez silnik ps dla wszystkich jej wejść?
o składni obecnie:
[CmdletBinding(ConfirmImpact=<String>,
DefaultParameterSetName=<String>,
HelpURI=<URI>,
SupportsPaging=<Boolean>,
SupportsShouldProcess=<Boolean>,
PositionalBinding=<Boolean>)]
Co robimy? utworzyć instancję obiektu cmdlbinding i podać listę argumentów do swojego konstruktora? tę składnię można znaleźć w param(), na przykład [Parameter(ValueFromPipeline=$true)]
czy ta składnia ma określoną nazwę i czy można ją znaleźć gdzie indziej?
w końcu, czy jesteśmy w stanie, jako proste powershellery, naśladować tę funkcjonalność i modyfikować zachowanie skryptów poprzez ustawienie atrybutu?
Chyba docs są nieco mylące tutaj: to wszystko jest związane z każdym rodzajem bloku skryptu : as Shay mentioned - nazwany przez nazwę funkcji, przez ścieżkę (skrypt), ale * także * bez nazwy, np '& {[CmdletBinding()] param() Write-Verbose 'Foo'} -Verbose' działa jak mistrz. – BartekB
@BartekB dzięki ok za pierwszą część pytania. –