How to Search Inside PowerPoint Files on Windows (Find the Deck With That Slide)

2026-10-15·5 min read
Quick Answer: PowerPoint's Find (Ctrl+F) searches only the presentation you have open. To find which of many .pptx files contains a slide, you can (1) enable content indexing for .pptx in Windows Indexing Options and use File Explorer's content: search, (2) script it in PowerShell by reading the slide XML inside each .pptx, or (3) use a desktop content-search tool such as LocalSynapse, which indexes the text on every slide — text boxes, placeholders and tables. Check what your method reads: in LocalSynapse, for .pptx files, speaker notes, chart labels and text that is part of a picture are not indexed, and legacy .ppt files are not supported.

You can picture the slide — the title, the chart, roughly when you presented it. You can't remember which of forty decks it's in. PowerPoint's own search won't help, because it only looks inside the presentation that's open. Here's how to search the text of many presentations at once on Windows, and what each method can and can't see.

First: what is actually searchable in a .pptx

A slide looks like one picture, but inside the file it is several different kinds of content, and search tools treat them differently:

Knowing this saves a lot of frustration: if the phrase you remember was in a pasted screenshot, no text search will find it.

Method 1: File Explorer with content indexing

Turn on content indexing for presentations: open Indexing Options, click Advanced, go to File Types, select .pptx and choose Index Properties and File Contents. Make sure the folder is an indexed location, wait for indexing, then search content:"pricing roadmap" in File Explorer.

Limit: you get file names only — not which slide matched. Outside indexed locations, Explorer falls back to a slow crawl.

Method 2: PowerShell, reading the slides directly

A .pptx is a ZIP archive. Each slide is an XML part under ppt/slides/, and its visible text sits inside those parts. A script can open each file and check every slide:

Add-Type -AssemblyName System.IO.Compression.FileSystem
Get-ChildItem -Path . -Filter *.pptx -Recurse | ForEach-Object {
  $file = $_.FullName
  $zip = [System.IO.Compression.ZipFile]::OpenRead($file)
  try {
    $zip.Entries | Where-Object { $_.FullName -like "ppt/slides/slide*.xml" } | ForEach-Object {
      $reader = New-Object System.IO.StreamReader($_.Open())
      $xml = $reader.ReadToEnd()
      $reader.Close()
      if ($xml -match "pricing roadmap") { "$file  ->  $($_.Name)" }
    }
  } finally { $zip.Dispose() }
}

It prints the file and the slide part that matched, e.g. slide7.xml. To include speaker notes, add a second pattern for ppt/notesSlides/.

Limits: PowerPoint sometimes splits a sentence into several pieces inside the XML when formatting changes mid-phrase, so a long exact phrase can fail to match — search for one or two distinctive words instead. The slide part's file name isn't guaranteed to match the slide's position in the deck, so treat it as a hint. No ranking, no reuse between searches, no legacy .ppt.

Method 3: A desktop content-search tool

If finding old slides is a regular chore, an indexer that reads every deck once is the practical answer. LocalSynapse handles presentations like this:

Files and document contents never leave your PC. LocalSynapse sends anonymous product-usage counts and technical health metrics only. You can turn this off in the app.

Which method should you use?

SituationBest fit
You know which deck it's inPowerPoint's Find (Ctrl+F)
Occasional search, nothing to installFile Explorer with .pptx content indexing
You need speaker notes searched todayThe PowerShell script, extended to notesSlides
Regularly hunting for slides across many decks and other documentsA content-search tool such as LocalSynapse

Related Posts

Try LocalSynapse Free

Search inside files, works offline, free

Go to Home

Related Posts