Baseado na sugestão do mnmnc eu fiz um script do Powershell que parece fazer o truque. É lento, mas me dá os resultados que eu quero.
$phrases = ("*Wildcard*,*separated*,*array*,*of*,*search*,*terms*")
Remove-Item .\results.txt
foreach ($p in $phrases){
$results = @(Get-ChildItem -Recurse -Path 'E:\myPath\' -Filter "$m" | where{$_.Extension -match "doc|docx|pdf|txt|xls|xlsx"} | Select-Object Fullname)
if($results.count -ne 0){
$m + " " + $results.length >> ".\results.txt"
$results >> ".\results.txt"
"
" >> ".\results.txt"
}
}
Isso percorre as frases e vê se há arquivos da extensão permitida que correspondam à frase de pesquisa. Os resultados são colocados em uma matriz e, se a matriz tiver algum elemento, a frase, o número de resultados e os nomes dos arquivos serão impressos em um arquivo de texto.
Esse laço foreach é provavelmente muito caro e eu não ficaria surpreso se houvesse uma maneira melhor de fazê-lo, mas eu estou apenas deixando que isso corra em segundo plano, então eu não me importo de demorar um pouco.