Буфер командной строки Windows, который не очищается при закрытии?

3266
deworde

Когда я работал с RedHat в Uni, одной из вещей, которые мне больше всего понравились в командной строке, было то, что она хранила команды из предыдущих сессий в своем буфере для долгосрочного извлечения. Возможность пару раз нажать и повторно запустить набор команд со вчерашнего дня очень помогла мне понять, что печатать лучше, чем нажимать.

Конечно, теперь я вернулся к WinXP и его преемникам, и мне постоянно больно набирать одни и те же наборы команд каждый раз, когда я открываю новый диалог командной строки, особенно имена путей. Очевидно, я был избалован. но...

Есть ли способ заставить командную строку Windows хранить свой буфер от одного сеанса к другому?

Изменить: мой офис имеет довольно строгие правила загрузки на рабочие ПК, поэтому, хотя я заинтересован в альтернативных программах для домашнего использования, я бы предпочел решение, которое не зависит от чего-то вроде Cygwin или Powershell.

5
Я предлагаю вам вместо этого установить Cygwin, чтобы получить подходящую оболочку (bash или ksh) Nifle 14 лет назад 0
Хммм, без скачивания, твои варианты равны нулю. (Где-то в 90-х я улучшил MS-Dos 'doskey.exe` для хранения команд на диске. Забавно, что он до сих пор не запоминает команды между сессиями.) Arjan 14 лет назад 0

3 ответа на вопрос

4
Axxmasterr

Cygwin - лучший вариант здесь. Он хранит историю команд так же, как ваша оболочка Unix на подлинном Unix Box. Что нужно сказать о cygwin, так это то, что он поддерживает все встроенные команды оболочки, которые windows «знает и любит».

Так что не думайте только потому, что вы запускаете его в оболочке Cygwin, что у вас есть какие-либо ограниченные функциональные возможности. Cygwin работает прямо над командной оболочкой в ​​Windows.

Моя настоящая проблема здесь не в уменьшении функциональности, а в расширении функциональности, которая не портируется, оставляя мне странные ошибки «Работает на моей машине». Я полагаю, это не проблема? deworde 14 лет назад 0
Некоторые командные файлы не будут работать в оболочке Cygwin, и поддержка Unicode может иметь проблемы. Но оба эти вопроса не являются реальными проблемами, поскольку всегда можно использовать cmd.exe, даже если Cygwin доступен. (У меня были проблемы с командами Ruby on Rails `gem` и` rake`, которые, как я читал, могли быть вызваны окончанием строки DOS CrLf. И, возможно, Cygwin использовал `/ cygdrive / c / xx` вместо` C: \ xx` может привести к проблемам для умных пакетных файлов, или, возможно, `start` не будет работать. Проблема Unicode имела какое-то отношение к кодовой странице 65001 и не растровым шрифтам, что заставляло бы работать Unicode в` cmd.exe`, но не в оболочке Cygwin.) Arjan 14 лет назад 0
0
Sam

Вы всегда можете попробовать использовать Powershell. Все обычные команды DOS все еще поддерживаются, и если вы используете скрипт, подобный этому, вы можете сохранить его в истории командной строки между сеансами.

0
Maksee

Я бы посоветовал вам использовать Far manager на ежедневной основе ( http://www.farmanager.com ). Итак, в Far CTRL-E работает как переключатель предыдущих команд, даже со вчерашнего дня и позавчера.

Что касается программного обеспечения, Far Manager долгое время наследовал Norton Commander (или, я бы сказал, его вдохновил), созданный автором утилиты сжатия Rar. Стабильная версия является условно-бесплатной, но даже незарегистрированная условно-бесплатная весьма полезна. Также недавно была запущена версия Unicode с открытым исходным кодом, поддерживаемая группой разработчиков. Far имеет систему плагинов (например, плагин WinSCP от автора WinSCP и множество других плагинов). Это хорошая замена cmd для любых операций командной строки (если вы знаете или знаете NC, вы понимаете, что я имею в виду), а с другой стороны - замену проводника, если вы предпочитаете клавиатуру мыши. Я не помню, когда в последний раз что-то копировал с помощью explorer или чего-то еще :)