Como o redirecionamento de saída funciona no Inno Setup?

Eu vi essa pergunta aqui:Como obter uma saída de um programa Exec'ed no Inno Setup?

Mas eu não consigo fazê-lo funcionar sozinho, o código comentado são minhas tentativas de fazer isso funcionar, mas eu recorri a um arquivo bat porque não consegui fazer meu redirecionamento funcionar.CacheInstanceName eCacheInstanceDir são variáveis ​​globais definidas em outro lugar:

function CheckCacheExists(): Integer;
var
  args: String;
  buffer: String;
  ResultCode: Integer;
begin
  // args := 'qlist ' + CacheInstanceName + ExpandConstant(' nodisplay > {tmp}\appcheck.txt');
  // MsgBox(args, mbInformation, MB_OK);
  // Exec(CacheInstanceDir + '\bin\ccontrol.exe', 'qlist ' + CacheInstanceName + ExpandConstant(' nodisplay > "{tmp}\appcheck.txt"'), '', SW_SHOW,

  ExtractTemporaryFile('checkup.BAT');
  Exec(ExpandConstant('{tmp}\checkup.BAT'), CacheInstanceDir + ' ' + 
    CacheInstanceName + ' ' + ExpandConstant('{tmp}'), '', SW_SHOW,
    ewWaitUntilTerminated, ResultCode);
  LoadStringFromFile(ExpandConstant('{tmp}\appcheck.txt'),buffer);
  if Pos('^', buffer) = 0 then
  begin
    Result := 0
  end
  else 
  begin
    Result := 1
  end 
end;

O que estou fazendo de errado?

questionAnswers(2)

yourAnswerToTheQuestion