Read-ConsoleMultiSelect
Asks the user to pick any number of the choices and returns the chosen objects.
Syntax
Read-ConsoleMultiSelect
[-Badge <Object>]
[[-Choices] <Object[]>]
[-Collapsed]
[-Describe <Object>]
[-Description <String>]
[-DisabledReason <ScriptBlock>]
[-Display <Object>]
[-GroupBy <Object>]
[-Hotkey <Object>]
[-Maximum <Int32>]
[-Minimum <Int32>]
[-Mode <Rich| Line| Accessible>]
[-PageSize <Int32>]
[-ParameterName <String>]
[-Preview <ScriptBlock>]
[-Selected <Object>]
[-StaticSnapshot]
[-Title] <String>
[<CommonParameters>]#All Parameter SetsDescription
Everything Read-ConsoleSelect does, plus checkboxes: Space toggles (on a group it toggles the whole group, shown as [–] when partly selected; Left and Right collapse and expand groups), Ctrl+A selects all shown, Ctrl+N none, Ctrl+T inverts, Ctrl+O shows only the selected ones. -Minimum and -Maximum are enforced, and a live count shows how many are selected. The chosen objects are written to the pipeline in list order.
Examples
Example 1
$tasks = Read-ConsoleMultiSelect 'Tasks' -Choices $tasks -Display Name -GroupBy Category -Preview { $_.Description } -Minimum 1Grouped tasks with a preview
Parameters
- -Badge Object
- Short right-aligned text per choice: a property name or a scriptblock.
- -Choices Object[]
- The choices: any objects (strings, services, records). The chosen objects themselves are returned.
- -Collapsed SwitchParameter
- Starts with every group collapsed.
- -Describe Object
- A sentence for the focused choice: a property name or a scriptblock.
- -Description String
- Help text under the question.
- -DisabledReason ScriptBlock
- Returns why a choice is unavailable ($_ is the choice), or nothing when it is available.
- -Display Object
- What to show for a choice: a property name or a scriptblock ($_ is the choice). Default: the choice as text.
- -GroupBy Object
- The group heading of a choice: a property name or a scriptblock.
- -Hotkey Object
- A key that picks a choice directly: a property name or a scriptblock returning a letter.
- -Maximum Int32
- The most choices accepted.
- -Minimum Int32
- The fewest choices accepted.
- -Mode InteractionMode
- Forces how to ask: Rich (in-place prompt), Line (question and typed answer), Accessible (numbered, no redraws) or None (use the default or fail).
- Possible values:
Rich,Line,Accessible - -PageSize Int32
- The preferred number of visible rows.
- -ParameterName String
- The parameter of your script that supplies this value without a prompt (named in the non-interactive error, for example -Domain).
- -Preview ScriptBlock
- Content for the preview pane ($_ is the focused choice): text, rich text, a widget, or an object shown as a list.
- -Selected Object
- Pre-selected choices: the objects or their displayed texts, or a scriptblock returning $true for selected ones.
- -StaticSnapshot SwitchParameter
- Prints the initialized rich prompt without reading input or returning an answer. Useful for documentation and unattended previews.
- -Title String
- The question.
Common Parameters
This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
For more information, see about_CommonParameters.