Como manter toda a saída de um programa na linha de comando do Windows?

31

Digamos que você tenha um programa que produz muitos resultados. Parece que o prompt de comando infelizmente não mantém tudo (até agora você pode rolar para cima).

Existe uma maneira de manter tudo isso?

Nathaniel
fonte

Respostas:

28

Aumentar o tamanho do buffer é a melhor maneira, se você quiser apenas rolar para cima e ver a saída, que você pode configurar nas propriedades.

Se você estiver anexando a um arquivo, provavelmente também desejará os erros, caso haja:

C: \> somecommand.exe> ​​"C: \ caminho \ para \ saída.txt" 2> & 1

Se você deseja um pager, existe moreou menos no Windows .

exemplo:

C: \> somecommand.exe | Menos

você pode usar fpara avançar ou bretroceder.

John T
fonte
Resposta mais abrangente, eu acho. Por acaso é John T. O que você sabe.
Nathaniel
@Nathaniel, é que uma coisa ruim = [] ... :)
John T
Não, eu só gosto de cutucar você e Molly. Eu não acho que realmente gostaria de tantos pontos. Não parece tão bonito pelo nome de alguém.
Nathaniel
@ JohnT, Quais são os comandos do cmd (em oposição à interface do usuário) para aumentar o tamanho do buffer?
Pacerier
11
FYI, você precisa configurar Layout> Screen Buffer Size> Height, não Options> Command History> Buffer Size.
Mythofechelon
8

Para capturar apenas a saída em um arquivo, consulte outras respostas. Você também pode aumentar a quantidade de texto que pode rolar para trás e ver até um limite.

Com a janela do prompt de comando aberta, clique no ícone [C:] na barra de título para exibir o menu e selecionar propriedades. Na guia Layout, altere o Tamanho do buffer de tela-> Altura para 9999. Isso permitirá que você rolar para trás tantas linhas na janela.

Donald Byrd
fonte
7

Você está usando o Windows XP? Se sim, pode anexar ao seu comando | more

Alternativamente, você poderia usar

operadores de redirecionamento de comando

.
Esta página tem mais informações para você.

Kevin Boyd
fonte
3
moreexiste desde a Idade das Trevas do DOS ...
Joey
5

Envie os resultados para um arquivo, assim:

C:> RunMyProgram.exe > outputfile.txt
Rob Farley
fonte
+1 Eu ia responder isso, mas estava procurando uma maneira melhor e não a vi. Você pode aumentar o tamanho do buffer para 999 e o número de buffers para 999, mas, dependendo de quão grande é "muita saída", isso pode não ser prático, especialmente quando você o salva. Seu programa exige interação do usuário, você precisaria ler o arquivo de texto para saber qual é a pergunta e poder respondê-la. Pena que o Windows não tem como despejar um log e manter os buffers de exibição normais.
Scott McClenning
@ Scott: O número de buffers de saída é irrelevante para quantas linhas podem ser exibidas. De certa forma, são como buffers de quadros para gráficos; você pode escrever para eles e mudar o visor para outro. O tamanho do buffer, no entanto, chega a 9999, o que deve ser suficiente para a maioria das necessidades.
Joey
3

você pode aumentar o tamanho do buffer no histórico de comandos (o padrão é 50) nas propriedades. você pode tentar algo como 500 ou até 5000, para poder rolar muito mais.

outra maneira é redirecionar a saída para um arquivo usando o caracter ">":

ex:

C:> someCommand> output.txt

abra o arquivo txt e você deverá ver a saída do comando lá.

Decio Lira
fonte