70

Есть ли способ сохранить историю команд cmd между сессиями?

4 ответа4

58

Я нашел 2 способа, ни один из которых не требует переключения на PowerShell.

  1. Установите Clink, который расширяет возможности cmd.exe с помощью постоянной истории и многого другого. Просто установите его и затем откройте cmd как обычно.

  2. Установите бесплатную версию TCC/LE, которая представляет собой отдельную программу, снова предоставляя расширенную версию cmd.exe .

22

Переключитесь на использование PowerShell и следуйте инструкциям на следующем сайте, чтобы включить историю:

http://blogs.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx

В качестве альтернативы, в cmd.exe вы можете использовать «doskey /history» в конце сеанса, чтобы показать, что вы набрали в этом сеансе, но не существует способа действительно загрузить его в следующий сеанс.

11

Сохранение истории - это небольшой рабочий процесс - вот менее "тяжелый" способ сделать это (без внешних библиотек).

Создайте файл bat/cmd для настройки своей истории, в данном случае я назвал его MyEnvironment.cmd:

doskey save=doskey /history $g$g C:\CmdHistory.log
doskey quit=doskey /history $g$g C:\CmdHistory.log $T exit
doskey history=find /I "$*" C:\CmdHistory.log
cls

Затем запустите это из «Пуск-> Выполнить» (вы также можете настроить псевдоним для этого):

cmd.exe /K C:\MyEnvironment.cmd

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


Per @ dave_thompson_085 «s комментарий, функция AutoRun работает хорошо , если вы не хотите использовать переключатель в /K Если вы правильно настроили ключ реестра, то .cmd или .bat не обязательно должны находиться в %AppData% , они могут находиться в том же месте, где они уже находятся.

Если вы используете расположение %AppData% , помните, что cmd, вероятно, будет искать ваш командный файл в папке "Roaming" (вместо корня AppData).

Дополнительная информация о функции AutoRun CMD: https://superuser.com/a/302553/333316.

2

Я использую Cygwin. Он также предоставляет некоторые другие функции, которые есть в Linux, но в Windows нет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .