Код:

RunProgram="WaitAll:HidCon:%%P:CMD /C ECHO %SfxVarCmdLine2% | FINDSTR /IRC:\"\</S\>\" >nul && \"TEST.cmd\" %SfxVarCmdLine2% & DEL \"TEST.cmd\""
RunProgram="WaitAll:%%P:CMD /C \"TEST.cmd\" %SfxVarCmdLine2%"
Если SFX модуль запускается с параметром /S, TEST.cmd выполняется скрытно (hidcon) и сразу удаляется, чтобы в следующем RunProgram не запустился повторно. Если без параметра, то запускается во втором RunProgram (с окном). Дабы второй RunProgram не ругался на отсутствие файла, после удаления в первом RunProgram, батник приходится запускать через CMD /C, но в таком случае мелькает окно консоли, что мне не нравится (хочу все тихо).
Подавления окна ошибки отсутствия файла в RunProgram не предусмотрено? Судя по справке, увы, нет. Поскольку префикс hidcon во втором RunProgram недопустим, существует ли способ (через системное решение), выполнить батник не через CMD /C, чтобы оно не ругалось ошибкой/окном об отсутствии выполняемого файла и при этом не мелькало окном? Про параметр AutoInstallX (-aiX) знаю, не напоминать, пожалуйста, задача использовать свой ключ для выбора режима запуска RunProgram.