Зберігати історію команд cmd.exe між сеансами?


Відповіді:


22

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

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

Крім того, в cmd.exe ви можете використовувати "doskey / історію" в кінці сеансу, щоб показати, що ви ввели на цьому сеансі, але немає можливості реально завантажити його в наступний сеанс.


6
Я радів +1 для цього, оскільки "Перейти на використання PowerShell" не обов'язково так легко, як це звучить залежно від того, для чого ви використовуєте консоль, але інформація точна soooooooooo;)
Shinrai

2
Домовились. Я вагався, щоб відкласти це, але це єдина реальна відповідь, яку я можу знайти. Я намагався щось подібне перейти на робочу станцію, яку я мав раніше, але просто не існує стійкого механізму історії для cmd.exe :-(
Hyppy

Зауважте, що це збереже список команд, які ви ввели, але це НЕ змінює список команд, який з’явиться при натисканні клавіші вгору на клавіатурі. Це не впливає на функціональність "doskey", іншими словами.
Марк

Слід зазначити, що деякі команди, які працюють у cmd, не працюють однаково в PowerShell, наприклад, mvn install `-Dmaven.test.skip = true вимагає зворотного вибору, як показано перед тире
Drenai

62

Я знайшов два способи, жоден з яких не потребує переходу на PowerShell.

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

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


5
Я трохи заперечує проти заміни загальносистемної системи, cmd.exeале це хороша відповідь, а також clink підтримує режим ін'єкції.
Лоренц Ло Зауер

4
Ого, Клінк - фантастичний.
Кріс Вебер

4
Клінк - геніальний. Замінивши cmdйого, проблем не було, дуже задоволений цим.
Полковник Паніка

2
Клінк дивовижний!
Hoang Huynh

3
Це має бути прийнятою відповіддю. Тому що це запитання задається .. !! Це краще, ніж використовувати будь-яке інше альтернативне додаток.
Саміта Чатхуранга

12

Збереження історії - це невеликий робочий процес - ось менш "важкий" спосіб зробити це (немає зовнішніх ліб).

Створіть файл 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

Кожен раз, коли я закриваю сеанс, я натискаю "кинути" - або якщо я боюся втратити історію в середині сеансу, я натискаю "зберегти". Якщо я хочу похвалитись за щось в історії, я просто натиснув "KEYWORD".


Відповідно до коментаря @ dave_thompson_085, AutoRunфункція працює добре, якщо ви не хочете використовувати /Kкомутатор. Якщо ви створили ключ реєстру правильно, .cmdабо .batне потрібно бути %AppData%, це може бути в тому ж місці , вона вже є.

Якщо ви використовуєте %AppData%розташування, пам’ятайте, що cmd, ймовірно, шукатиме ваш пакетний файл у папці «Роумінг» (замість кореня AppData).

Більше інформації про функцію AutoRunCMD: https://superuser.com/a/302553/333316


Для чого $gі $tдля чого?

@ Chinggis6 $gвставляє a >і $tє роздільником команд.
Superole

@ Superole ах ок, г реактор, ніж і т ермінат, але чому б не використовувати >і &&символи безпосередньо в псевдонімі doskey?

@ Chinggis6, оскільки це порушило б команду створення псевдоніма. Тоді команда-інтерпретатор припустила б, що ви мали на увазі: спочатку виконати doskey quit=doskey /historyта зберегти висновок створення макросу в логфайлі (або нічого, або повідомлення про помилку); далі закриваємо вікно (відкидаючи все). -Ви можете ^замість цього уникнути цих персонажів , я думаю. Як ^>^>і ^&(... і так, вам потрібна лише одна амперсанда)
Superole

1
Замість явного /kможна використовувати AutoRun superuser.com/a/302553/333316
dave_thompson_085

2

Я використовую cygwin . Він також надає деякі інші функції, які має Linux, але Windows немає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.