[CmdletBinding()]param( [Parameter(ParameterSetName="Normal")] [Parameter(ParameterSetName="DropNamespace")] [string]$Filter, [Parameter(ParameterSetName="ByPackage",Mandatory)] [Parameter(ParameterSetName="DropNamespace",Mandatory)] [ArgumentCompleter({ param ( $commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters ) $local:NotAll = $true if( $fakeBoundParameters.ContainsKey("Force") ) { $NotAll = -not $fakeBoundParameters.Force } [Packagesz]::_GetValidValues($wordToComplete,$NotAll,$true) })] [string]$Package, [Parameter(ParameterSetName="Normal")] [Parameter(ParameterSetName="ByPackage")] [Parameter(ParameterSetName="DropNamespace",Mandatory)] [switch]$NamesOnly, [Parameter(ParameterSetName="Normal")] [Parameter(ParameterSetName="ByPackage")] [Parameter(ParameterSetName="DropNamespace")] [switch]$Force, [Parameter(ParameterSetName="DropNamespace",Mandatory)] [switch]$DropNamespace ) $local:rVal = [MyScript]::_GetValidValues($Filter,-not $Force,$true) if( $Package ) { $Package = Join-Path $Package '' $rVal = $rVal | Where-Object { $_ -match "^$Package" } if( $DropNamespace ) { $rVal = $rVal | ForEach-Object { $_.Replace($Package,'') } } } if( $NamesOnly ) { return $rVal } return $rVal | ForEach-Object { Join-Path $MyPSScriptRoot "$_`.ps1" }