Estou escrevendo um programa C no Windows, minhas chamadas printf são impressas na linha de comando e sei que posso redirecionar toda essa saída para um arquivo de texto usando:
myProgram.exe > mylog.txt
No entanto, desejo também ver a saída que seria impressa no console e registrar tudo isso em um arquivo de texto.
Existe uma maneira de fazer isso? Eu estava pensando em usar cauda para monitorar o arquivo de log.
windows
command-line
stdout
user79397
fonte
fonte
Respostas:
O Windows PowerShell tem uma ferramenta que pode fazer isso, nomeada
tee
após a ferramenta unix que faz o mesmo.Como alternativa, existem portas do unix
tee
para windows:fonte
No Windows, tudo o que posso pensar é fazer isso:
Isso se baseia no exemplo de comando da sua pergunta - se, de fato, você deseja anexar a saída,
mylog.txt
então você deseja usar em>>
vez de>
, mastype
imprimiria o arquivo de log inteiro, não apenas o que foi anexado.Se você baixar o GnuWin32 CoreUtils , poderá usar o método Unix (
tee
comando) para fazer isso:Isso gravará a saída do myProgram.exe para,
mylog.txt
mas também a exibirá no console ao mesmo tempo. Se você deseja apenas anexarmylog.txt
, pode passar o-a
parâmetro para tee.fonte
Eu uso o Visual Studio Code e abro o arquivo de log a partir daí, ele mantém a visualização atualizada quase em tempo real à medida que o arquivo de log é alterado
fonte
Eu só tinha uma necessidade semelhante e usei o Tail, pois o OP sugeria que eles:
O "> C: \ Temp \ Commands_Log.txt" cria o arquivo de log e adiciona a saída de todos os comandos localizados dentro dos (parênteses).
O primeiro comando dentro dos parênteses deve ser o de iniciar o Tail, que será aberto em uma nova janela de comando.
Os ecos no final destinam-se a usuários desconhecidos, informando-os quando tudo estiver completo.
fonte