Ersetze mal Deine RunWait-Zeile durch:
[autoit]$sCmd = '"C:\Program Files (x86)\Two Pilots\PDF2Text Pilot\textextract.exe" ' & $s_Path & $s_Ext & $a_List[$i] & " /to " & @TempDir & "\out.txt"
Msgbox(0,"",$sCmd)
RunWait($sCmd)
Dann wirst Du mindestens schon einmal feststellen, das Deine Variablen "$s_Path & $s_Ext & $a_List[$i]" in dieser Reihenfolge etwas wie:
"c:\install.pdfdemo.pdf" ergibt ! Was willst Du damit im Befehl erreichen ?
Wenn Du den Filterparameter vom _FileListToArray()-Befehl nutzt, erhälts Du schon einmal nur die PDF's. Wenn Du dann die Variable vernünftig zusammensetzt, müsste etwa dies dabei herauskommen:
Spoiler anzeigen
#include <Array.au3>
#include <File.au3>
Global Const $s_Path = "c:\install" ; Verzeichnis, in dem gesucht werden soll
Global Const $s_Ext = '*.pdf' ; Dateiendung
Global Const $s_Search = 'Statusprotokoll'
Global $a_Reg, $a_List = _FileListToArray ($s_Path, $s_Ext, 1) ; Ein Array aller PDF's im Ordner wird erstellt
For $i = 1 To $a_List[0]
$sCmd = '"C:\Program Files (x86)\Two Pilots\PDF2Text Pilot\textextract.exe" ' & $s_Path & '\' & $a_List[$i] & " /to " & @TempDir & "\out.txt"
;MsgBox(0,"",$sCmd) ; Zum Debuggen das ";" ganz am Anfang entfernen !
RunWait($sCmd)
$a_Reg = StringRegExp (FileRead (@TempDir & "\out.txt"), $s_Search & '(...)', 1)
FileDelete(@TempDir & "\out.txt")
; (-1) ... wird nach dem Wort und drei nachfolgenden Zeichen gesucht
If IsArray ($a_Reg) Then
; (-1) Falls das Wort gefunden wurde...
FileMove ($s_Path & '\' & $a_List[$i], $s_Path & '\' & $a_Reg[0] & $s_Ext, 1)
; (-1) ... wird die Datei umbenannt
EndIf
Next