leshcat примерно так
Код:

[Components]
Name: presetup; Description: запустить перед копированием файлов; Flags: disablenouninstallwarning
[Files]
Source: "presetup.bat"; Flags: dontcopy
*[*Code]
procedure InitializeWizard();
begin
...
ExtractTemporaryFile('presetup.bat');
...
end;
procedure CurStepChanged(CurStep: TSetupStep);
var ErrorCode: integer
begin
if CurStep=ssInstall then begin
if IsComponentSelected('presetup') then ShellExec('', ExpandConstant('{tmp}\presetup.bat'), '', '', SW_HIDE, ewNoWait, ErrorCode);
end;
end;
как домашнее задание можешь сделать тоже самое через BeforeInstall в секции Files
