Как сохранить весь вывод программы в командной строке Windows?

31

Скажем, у вас есть программа, которая дает много результатов. Кажется, что командная строка, к сожалению, не сохраняет все это (есть только пока вы можете прокрутить вверх).

Есть ли способ сохранить все это?

Натаниель
источник

Ответы:

28

Увеличение размера буфера - лучший способ, если вы просто хотите прокрутить вверх и увидеть выходные данные, которые вы можете настроить в свойствах.

Если вы добавляете файл, вы, вероятно, захотите ошибки, если они есть:

C: \> somecommand.exe> ​​"C: \ path \ to \ output.txt" 2> & 1

Если вы хотите пейджер, есть moreили меньше для Windows .

пример:

C: \> somecommand.exe | Меньше

затем вы можете использовать для перехода fвперед или bназад.

Джон Т
источник
Наиболее полный ответ, я думаю. На самом деле это просто Джон Т. Что ты знаешь.
Натаниэль
@ Натаниэль, это плохо = [] ... :)
Джон Т
Нет, я просто люблю ткнуть тебя и Молли. Я не думаю, что на самом деле мне понравилось бы столько очков. Не выглядит так красиво по имени.
Натаниэль
@JohnT, какие команды cmd (в отличие от пользовательского интерфейса) увеличивают размер буфера?
Pacerier
1
FYI, вам нужно настроить Layout> Screen Buffer Size> Heightне Options> Command History> Buffer Size.
Мифофешелон
8

Чтобы просто захватить вывод в файл, см. Другие ответы. Вы также можете увеличить сумму до текста, который вы можете прокрутить назад и увидеть до предела.

Открыв окно командной строки, щелкните значок [C:] в строке заголовка, чтобы открыть меню и выбрать свойства. На вкладке Layout измените Размер экрана буфера-> Высота на 9999. Это позволит вам прокрутить назад столько строк в окне.

Дональд Берд
источник
7

Используете ли вы Windows XP, если вы можете добавить свою команду | more

В качестве альтернативы вы можете использовать

операторы перенаправления команд

,
Эта страница имеет больше информации для вас.

Кевин Бойд
источник
3
moreсуществует с темных веков ДОС ...
Джои
5

Выведите результаты в файл, например так:

C:> RunMyProgram.exe > outputfile.txt
Роб Фарли
источник
+1 Я собирался ответить на это, но я искал лучший путь и не видел ни одного. Вы можете увеличить размер буфера до 999, а количество буферов - до 999, но в зависимости от того, насколько велик «большой вывод», это может оказаться нецелесообразным, особенно если вы собираетесь сохранить его. Ваша программа требует взаимодействия с пользователем, вам нужно прочитать текстовый файл, чтобы узнать, что это за вопрос, чтобы вы могли на него ответить. Жаль, что у Windows нет способа вывести журнал и поддерживать буферы отображения в нормальном состоянии.
Скотт МакКленнинг
@Scott: количество выходных буферов не зависит от количества отображаемых строк. В некотором смысле они похожи на буферы кадров для графики; Вы можете написать им и переключить дисплей на другой. Однако размер буфера достигает 9999, что должно быть достаточно для большинства задач.
Джои
3

Вы можете увеличить размер буфера в истории команд (по умолчанию до 50) в свойствах. Вы можете попробовать что-то вроде 500 или даже 5000, чем вы сможете прокрутить намного больше.

Другой способ - перенаправить вывод в файл, используя символ «>»:

например:

C:> someCommand> output.txt

чем открыть файл TXT, и вы должны увидеть вывод для команды там.

Децио Лира
источник