Você realmente precisa manter o primeiro arquivo chamado ProgramLog.txt ?
Isso seria mais simples se você renomeie o primeiro arquivo para ProgramLog1.txt ,
o segundo para ProgramLog2.txt , etc. Porque dizer
msiexec … /log c:\ProgramLog.txt
vai sobrescrever um arquivo existente chamado ProgramLog.txt .
Se você precisar fazer isso, altere o comando msiexec para
msiexec … /log c:\temp.txt
e depois renomeie temp.txt para ProgramLog.txt na primeira vez, ProgramLog1.txt na segunda vez, ProgramLog2.txt na terceira vez, etc. Alternativamente, faça o seu comando original:
msiexec … /log c:\ProgramLog.txt
na primeira vez (quando ProgramLog.txt não existe),
e em todas as execuções subsequentes, crie temp.txt e renomeie-o.