Ich habe eine einfache Funktion, die zwei Parameter hat. Ich habe sie nicht als positional erwähnt, aber wenn ich die Hilfe für diese Funktion überprüfe, weist sie ihnen automatisch eine Position zu. Wie kann ich sie zwingen, nur als Parameter bezeichnet zu werden (Wert nicht nach Position akzeptieren)?Benannte Parameter in PowerShell als Position
Function Test-Params
{
Param
(
[Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName)]
$Param1,
[Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)]
$Param2
)
Write-Host "$Param1 $Param2"
}
Wenn ich überprüfen Sie die Hilfe für diese Funktion oder versuchen, die Funktion, indem Parameter Positionswerte ausführen es funktioniert (aber es sollte nicht):
Test-Params test1 test2
test1 test2
Hilfe Ausgabe:
help Test-Params -Full
NAME
Test-Params
SYNTAX
Test-Params [-Param1] <Object> [[-Param2] <Object>] [<CommonParameters>]
PARAMETERS
-Param1 <Object>
Required? true
Position? 0
Accept pipeline input? true (ByValue, ByPropertyName)
Parameter set name (All)
Aliases None
Dynamic? false
-Param2 <Object>
Required? false
Position? 1
Accept pipeline input? true (ByValue, ByPropertyName)
Parameter set name (All)
Aliases None
Dynamic? false
Excellent !! Danke für die Eingaben. Es klappt. – SavindraSingh
Gut zu wissen; mit 'PositionalBinding = $ false' an Ort und Stelle, verwenden Sie parameterspezifische 'Position =' Attribute (z. B.' [Parameter (Obligatorisch, Position = 0)] ', um ausgewählte Parameter explizit positionell zu machen. –
mklement0