Jak działa przekierowanie wyjścia w Inno Setup?

Widziałem to pytanie tutaj:Jak uzyskać wyjście programu Exec'ed w Inno Setup?

Ale nie mogę tego zmusić do działania, skomentowany kod jest moją próbą wykonania tej pracy, ale uciekłem się do pliku nietoperza, ponieważ nie mogłem wykonać mojego przekierowania.CacheInstanceName iCacheInstanceDir są zmienną globalną zdefiniowaną gdzie indziej:

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;

Co ja robię źle?

questionAnswers(2)

yourAnswerToTheQuestion