A PowerShell script that automatically plays a series of PowerPoint presentations in full-screen slideshow mode — perfect for ignite-style talks, conference tracks, or any event where multiple decks need to auto-rotate on a timer.
- Auto-advances through all
.pptxfiles in a folder (sorted by filename) - Configurable timer per presentation (default 5 minutes)
- Transition pause between decks (default 10 seconds)
- Live countdown displayed in the console
- Interactive controls — press S to skip, Q to quit at any time
- Console auto-minimise so the slideshow owns the full screen
- Graceful cleanup on Ctrl+C or unexpected exit
- Windows with PowerShell 5.1+
- Microsoft PowerPoint installed (uses COM automation)
# Play all .pptx files in a specific folder (5 min each)
.\Start-SlideShow.ps1 -PresentationFolder "C:\Talks\MyEvent"
# 3-minute talks with 5-second transitions
.\Start-SlideShow.ps1 -PresentationFolder "C:\Talks\MyEvent" -DurationSeconds 180 -TransitionSeconds 5
# Run from the folder that contains the .pptx files (no -PresentationFolder needed)
cd C:\Talks\MyEvent
C:\path\to\Start-SlideShow.ps1| Parameter | Type | Default | Description |
|---|---|---|---|
-PresentationFolder |
string | script's own folder | Path to the folder containing .pptx files |
-DurationSeconds |
int | 300 |
Seconds each presentation is displayed |
-TransitionSeconds |
int | 10 |
Seconds to pause between presentations |
-ShowTitle |
string | Auto Slide-Show |
Banner text shown in the console header |
- Name your files with a numeric prefix (e.g.
01_Opening.pptx,02_Keynote.pptx) so they sort in the order you want. - If a slideshow ends naturally before the timer, the script waits for the remaining time, then moves on.
- Press S during the transition countdown to start the next talk immediately.
Licensed under the Apache License 2.0.