Eigentlich wartet WAITFOR auf ein bestimmtes Signal und der Timeout-Parameter ist für einen "vorzeitigen" Abbruch vorhaden.
Wenn das Signal aber vorher/sofort kommt, dann wird natürlich nicht so lange gewartet.
TIMEOUT ist der Befehl zum Warten. (auch wenn man immernoch zu oft den "Hack" mit PING findet)
Ich würde in den Scripten immer ein EXIT machen (oder das ErrorLevel/ExitCode setzen), sowohl bei Fehlern, als auch beim OK mit 0.
(außer beim Event ist eingestellt, dass die Rückgabe nicht behandelt wird)
Im Postbuild soll die Datei (bat) die Signierung durchführen. Jedes Mal beim Ausführen ist die Datei noch in Benutzung!.
Deswegen habe ich 5 Sekunden Timeout eingestellt (timeout /T 5).
Wir fummeln im AfterBuild auch an der EXE/
DLL/
BPL rum und hatten noch nie ein Problem, dass die Datei noch im Zugriff ist (seitens Delphi), auch ohne ein Timeout.