A saída aparece no console, mas desaparece quando redirecionada para o arquivo
Eu estou usando uma ferramenta que testa discos rígidos, fstest.exe. Ele roda bem a partir da linha de comando, exibindo quanto tempo demorou para executar várias tarefas de criação / exclusão de arquivos / separação de arquivos. A saída usual, quando executada a partir da linha de comandofstest.exe otherParams
, se parece com isso:
---
CPU Usage: 0.0%
Disk reads/sec: 0
Disk writes/sec: 0
Disk bytes/read: 0
Disk bytes/write: 0
Test duration: 0 milliseconds, 1153 ticks (3507177 ticks/sec)
---
O problema é que quando eu redireciono a saída para o arquivo, ele não exibe nada:
fstest.exe otherParams > out.txt
cria um arquivo out.txt vazio, mesmo que o comando seja executado corretamente (e criou alguns arquivos de teste como parte de sua execução).
Como posso forçar este aplicativo para redirecionar a saída para um arquivo? Eu tentei examiná-lo mais de perto com o PowerShell (via Start-Process), e ambos os fluxos de saída padrão e de erro padrão estão vazios.
Outras coisas que eu tentei:
cmd /c "fstest.exe otherParams > out.txt"
fstest.exe otherParams 2>&1 >> out.txt
fstest.exe otherParams | sort
powershell Start-Process -FilePath .\fstest.exe -ArgumentList @("create2", "-openexisting") -RedirectStandardOutput out.txt -RedirectStandardError err.txt -wait
(Isso cria tanto out.txt e err.txt, ambos vazios.)
O que faria com que um aplicativo alterasse sua saída, dependendo de ser redirecionado, e há alguma maneira de redirecioná-lo para o arquivo?
UPDATE: Eu tenho minhas mãos no código-fonte. É C ++, e a saída é simplesprintf
afirmações.