При работе с консольным приложением, историей всего, что было введено в a Console.ReadLine()
хранится. Когда при консольной подсказке для ввода чего-то нажимая/вниз курсор просмотрит эту историю путем прокрутки (и целая история может быть просмотрена путем нажатия F7).
Используя C#, существует способ или отключить это поведение или очистить историю того, что было уже введено?
Разъясниться, Console.Clear()
не очищает историю, только экранный буфер. Я хочу очистить историю команд.
Править: Попробовав несколько из предложенных методов, а также часть моего собственного изобретения, лучший подход является тем, предложенным ho1. Это не идеально, потому что это поднимает другую консоль, но это действительно очищает историю.
Изменить: удален неправильный ответ (я запутался в том, что вы хотели сделать) и добавил еще один (надеюсь) лучший ответ.
Это можно сделать, освободив текущую консоль с помощью FreeConsole , а затем выделив новую консоль с помощью AllocConsole . Я бы предположил, что тогда он не сохранит историю командной строки.
В общем, если вы хотите делать с консолью что-то, что не поддерживается .Net Framework, лучше всего поискать на этой странице MSDN: Функции консоли
Может ли эта публикация на Как мне настроить историю командной строки, DOSKEY? help?
В старые времена DOS была доступна утилита DOSKEY.EXE, которая позволяет пользователю циклически перебирать предыдущие команды. В NT это включено по умолчанию, и вы можете циклически перебирать старые команды, однако DOSKEY имеет другие возможности.
Чтобы очистить текущую историю командной строки, используйте команду:
doskey / переустановить
При желании вы также можете указать, сколько старых команд оставить, с помощью параметра / listsize
doskey / install / listsize = 50
сохранит 50 старых команд.
Пожалуйста, дайте мне знать, работает ли он и как вы его использовали :)
Взгляните на SetConsoleHistoryInfo . Согласно документации, он работает только в Vista и более поздних версиях, поэтому я не уверен, поможет ли это вам или нет.
Вы можете попробовать использовать свойство
Console.BufferHeight : "This property defines the number of rows (or lines) stored in the buffer that is accessed by a console mode window"
Кажется, согласно MSN (http://msdn.microsoft.com/en-ie/library/system.console_members.aspx) метод console.clear()
"Очищает буфер консоли..."