Инсталлятор может после установки сам себя скопировать? Данный код не работает:
Код:

FileCopy(ExpandConstant('{srcexe}'), 'C:\Test\test.exe', False);
Путь назначения берётся из переменной, которую вводят во время установки, поэтому в секции Run через "
cmd.exe copy" не получится наверное. Хотя даже с фиксированными путями у меня не получалось скопировать, при любых вариацииях с кавычками (обрамление, экранирование) открывается дефолтная консоль и команда в неё не передаётся (при одном параметре она передаётся, при двух (источник/назначение) нет, при копировании вручную в консоль работает). Например:
Код:

Filename: {sys}\cmd.exe; Parameters: "copy ""C:\In\test.exe"" ""C:\To\test.exe"""; Flags: shellexec runascurrentuser nowait
Здесь по аналогии с рабочим примером другой консольной утилиты применил похожий синтаксис, экранирование кавычек и обрамление всей команды.
Но это к слову, т.к. путь ещё нужно передать, не приходилось этого делать. Танцы с бубном (.bat) не хочется использовать, кто знает, какая система защиты у пользователя стоит, может отдельно запросить разрешение на запуск батника, а это совершенно лишнее.