Skip to content

Read-SpectreMultiSelection

Description

This function displays a multi-selection prompt using Spectre Console and returns the selected choices. The prompt allows the user to select one or more choices from a list of options. The function supports customizing the title, choices, choice label property, color, and page size of the prompt.


Examples

Example 1
This example demonstrates a multi-selection prompt with a custom title and choices.

Terminal window
$fruits = Read-SpectreMultiSelection -Message "Select your favourite fruits" `
-Choices @("apple", "banana", "orange", "pear", "strawberry", "durian", "lemon") `
-PageSize 4
# Type "↓", "<space>", "↓", "↓", "<space>", "↓", "<space>", "↲" to choose banana, pear and strawberry
Write-SpectreHost "Your favourite fruits are $($fruits -join ', ')"

Parameters

Message

The title of the prompt. Defaults to “What are your favourite [Spectre.Console.Color]?”.

TypeRequiredPositionPipelineInputAliases
[String]false1falseTitle
Question
Prompt

Choices

The list of choices to display in the selection prompt. ChoiceLabelProperty is required if the choices are complex objects rather than an array of strings.

TypeRequiredPositionPipelineInput
[Array]true2false

ChoiceLabelProperty

If the object is complex then the property of the choice object to use as the label in the selection prompt is required.

TypeRequiredPositionPipelineInput
[String]false3false

Color

The color to use for highlighting the selected choices. Defaults to the accent color of the script.

TypeRequiredPositionPipelineInput
[Color]false4false

PageSize

The number of choices to display per page. Defaults to 5.

TypeRequiredPositionPipelineInput
[Int32]false5false

TimeoutSeconds

TypeRequiredPositionPipelineInput
[Int32]false6false

AllowEmpty

Allow the multi-selection to be submitted without any options chosen.

TypeRequiredPositionPipelineInput
[Switch]falsenamedfalse

Syntax

Terminal window
Read-SpectreMultiSelection [[-Message] <String>] [-Choices] <Array> [[-ChoiceLabelProperty] <String>] [[-Color] <Color>] [[-PageSize] <Int32>] [[-TimeoutSeconds] <Int32>] [-AllowEmpty] [<CommonParameters>]