Problema
Eu uso um aplicativo GUI que grava a saída de depuração em uma janela de comando (somente lá, nenhum outro log). Quando o aplicativo trava, a janela de comando desaparece junto com toda a saída.
Pergunta
Como posso capturar a saída da janela de comando em um arquivo de texto?
O que eu tentei
Como não encontrei forma de interagir com a janela de comando, recorri à gravação de tela. Isso está longe de ser o ideal, pois não consigo selecionar ou copiar o texto facilmente.
Como
prog.exe > file.txt
funciona para todas as saídas, exceto a última, agora sabemos que o programa GUI usa a saída padrão que pode ser capturada nas condições corretas.Você precisará usar o PowerShell com o cmdlet chamado Tee-Object, cujo alias é
tee
(no espírito do Linux). Este comando envia para um arquivo e também o passa para a saída padrão.O comando do PowerShell a ser usado pode ser semelhante a:
Isso enviará a saída
\path\file.txt
tanto para o console quanto para ele.Talvez haja uma maneira de apenas "obter" os dados da janela do cmd de alguma forma. Como ler da memória ou algo assim. Mas nunca vi esses métodos. Eu simplesmente usaria o AutoHotkey.
Exemplo: https://autohotkey.com/board/topic/9953-how-to-capture-intire-cmdexe-text/
1) Encontre a janela cmd por título. AutoHotkey tem uma ferramenta chamada "Window Spy". https://amourspirit.github.io/AutoHotkey-Snippit/WindowSpy.html Use esta ferramenta para obter os detalhes do título/janela para que você possa "procurá-lo" posteriormente.
2) Você basicamente só precisa da sequência para capturar a saída atual. Tais como:
Alt+Space;E;S;
# marque tudoAlt+Space;E;Y;
# copie2) Faça o script rodar periodicamente. Veja
loop
e palavras-sleep
chave.Você pode até alternar o script por meio de uma variável:
Fonte - usuário: left1000, via: https://autohotkey.com/board/topic/54-loop-until-key-is-pressed/
3) Apenas escreva o conteúdo que você pegar em um arquivo de texto. https://www.autohotkey.com/docs/commands/FileAppend.htm
Acredito que isso possa ser copiado e colado dos documentos do Autohotkey e do Google em cerca de 5 a 15 minutos. Não posso fornecer um exemplo / script completo porque não sei que aplicativo é esse, não posso testar o script etc. Portanto, isso é o máximo que posso ajudar neste caso.