NOTE: The menu has been updated multiple times since capturing these screen-grabs, so they are no longer accurate...
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.
| Parameter | Example | |
|---|---|---|
| Required | Entries (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'"} |
|
| Optional | Title | -Title 'Example Title' |
| Optional | Sort | -Sort |
| Optional | MultiSelect | -MultiSelect |
| Example | Description |
|---|---|
| AdvancedMenu | Demonstrates all supported entry types (regular command + methods of adding a nested menu). |
| AppxPackages | Uses Write-Menu to list app packages (Windows Store/Modern Apps) |
| CustomMenu | Generates a custom menu by manually specifying each entry |
| Key | Description |
|---|---|
| Up | Previous entry |
| Down | Next entry |
| Left / PageUp | Previous page |
| Right / PageDown | Next page |
| Home | Jump to top |
| End | Jump to bottom |
| Space | -MultiSelect Select current |
| Insert | -MultiSelect Select all |
| Delete | -MultiSelect Select none |
| Enter | Confirm selection |
| Esc / Backspace | Exit / Previous menu |

