Write-Menu

August 5, 2016 ยท View on GitHub

-Title 'AppxPackages' -Sort -Entries (Get-AppxPackages).Name

AppxPackages

-Title 'AppxPackages' -Sort -MultiSelect -Entries (Get-AppxPackages).Name

AppxPackages

NOTE: The menu has been updated multiple times since capturing these screen-grabs, so they are no longer accurate...

Description

Outputs a command-line menu which can be navigated using the keyboard.

  • Automatically creates multiple pages if the entries cannot fit on-screen.
  • Supports nested menus using a combination of hashtables and arrays.
  • No entry / page limitations (apart from device performance).
  • Sort entries using the -Sort parameter.
  • -MultiSelect: Use space to check a selected entry, all checked entries will be invoked / returned upon confirmation.
  • Jump to the top / bottom of the page using the Home and End keys.

Parameters

ParameterExample
RequiredEntries (array)-Entries @('Entry 1', 'Entry 2', 'Entry 3')
Entries (hashtable)-Entries @{'Entry 1' = 'Write-Host "Command 1"'; 'Entry 2' = 'Write-Host "Command 2"'; 'Entry 3' = 'Write-Host "Command 3'"}
OptionalTitle-Title 'Example Title'
OptionalSort-Sort
OptionalMultiSelect-MultiSelect

Examples

ExampleDescription
AdvancedMenuDemonstrates all supported entry types (regular command + methods of adding a nested menu).
AppxPackagesUses Write-Menu to list app packages (Windows Store/Modern Apps)
CustomMenuGenerates a custom menu by manually specifying each entry

Controls

KeyDescription
UpPrevious entry
DownNext entry
Left / PageUpPrevious page
Right / PageDownNext page
HomeJump to top
EndJump to bottom
Space-MultiSelect Select current
Insert-MultiSelect Select all
Delete-MultiSelect Select none
EnterConfirm selection
Esc / BackspaceExit / Previous menu