मुझे यह विशिष्ट प्रश्न संबोधित नहीं किया जा रहा है, इसलिए मैं इसे यहां पूछूंगा: मुझे स्थिति 0 पैरामीटर होने के लिए डायनेम पैरामीटर नहीं मिल रहा है। जब मैं कोशिश, ऐसा लगता है जैसे कि पहले स्थिर पैरामीटर स्थिति 1 में परिभाषित को बढ़ावा देने या स्थिति 0 और गतिशील पैरामीटर स्थिति 0 के लिए परिभाषित किया प्राप्त कर लेंगे तो अगले उपलब्ध स्थान (स्थिति 1) में बाद में जोड़ा जाता है:क्या पावरहेल v2.0 गतिशील पैरामीटर 0 स्थिति पर हो सकता है?
$x=[string]::Empty;
Function foo {
[cmdletbinding()]
Param (
[Parameter(ParameterSetName="set1",
Position=1,
ValueFromPipeline=$true)]
$InputObject,
[Parameter()]
[switch]
$RequireFilePath
)
DynamicParam {
$mand = $script:x -eq $null -or `
$script:x -eq [string]::Empty -or `
$RequireFilePath.IsPresent;
$attrs = New-Object System.Management.Automation.ParameterAttribute;
$attrs.ParameterSetName = "set1";
$attrs.Mandatory = $mand;
$attrs.Position = 0;
$attrCollection = New-Object `
System.Collections.ObjectModel.Collection[System.Attribute];
$attrCollection.Add($attrs);
$FilePath = New-Object System.Management.Automation.RuntimeDefinedParameter `
"FilePath", string, $attrCollection;
$paramDictionary = New-Object `
System.Management.Automation.RuntimeDefinedParameterDictionary;
$paramDictionary.Add("FilePath", $FilePath);
$paramDictionary;
}
Begin {
if ($FilePath.Value -eq $null -or $FilePath.Value -eq [string]::Empty) {
$FilePath.Value = $script:x;
} else {
$script:x = $FilePath.Value;
}
Write-Output ("(foo) FilePath: {0}" -f $FilePath.Value);
Write-Output ("(foo) RequireFilePath: {0}" -f $RequireFilePath.IsPresent);
Write-Output ("(foo) script:x: {0}" -f $script:x);
}
Process {
Write-Output ("(foo) InputObject: {0}" -f $InputObject);
}
End {
}
}
foo "filename2.txt" "zxcv";
जब मार डाला, मैं इस मिल:
(foo) FilePath: zxcv
(foo) RequireFilePath: False
(foo) script:x: zxcv
(foo) InputObject: filename2.txt
मुझे लगता है मेरी उम्मीद है कि गतिशील पैरामीटर स्थिति 0 जा रहा था और स्थिर पैरामीटर स्थिति 1. किसी को भी इस पर वजन कर सकते हैं जा रहा था था? क्या एक गतिशील पैरामीटर को स्थिर पैरामीटर (पहले से) की तुलना में कम पद पर होने के लिए परिभाषित किया जा सकता है?