Вопрос: Существует ли глобальная, постоянная история CMD?


Иногда я забываю, как выглядит точный синтаксис команды CMD, а затем я хотел бы искать свою собственную историю CMD. Очевидно, что в течение того же сеанса вы можете просматривать его с помощью клавиш со стрелками вверх и вниз, но как насчет истории предыдущих сессий CMD? Есть ли файл, журнал, в который записывается история, или все это переходит к цифровой нирване?

Благодаря!


77
2017-12-17 18:06


Источник


Вы можете захватить команду exit для автоматического сохранения журнала перед выходом: doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $* но вам нужно выяснить, как выполнить это автоматически при каждом запуске сеанса командной строки. PS: Убедитесь, что путь к файлу журнала доступен для записи. C:\  не доступен для записи в командной строке без администратора. - ADTC
@ADTC: AutoRun должен обрабатывать «каждый запуск»: superuser.com/a/302553/333316 или stackoverflow.com/a/17405182/2868801 - dave_thompson_085


Ответы:


Не изначально, но проверьте: http://mridgers.github.io/clink/ , делает cmd.exe намного более продуктивным. Указание функций на странице проекта:

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.

58
2018-03-13 08:24



клик решил все - Still.Tony
Любые планы включить его по умолчанию в Windows? : D - Jaime Hablutzel
Можете ли вы установить ~/.inputrc при использовании клика? (и вы знаете, можно ли использовать консоль или что-то еще?) - Mike H-R
Видимо, см. Документ github.com/mridgers/clink/blob/master/docs/clink.md, - Baris Demiray
... кроме псевдонимов. clink ненавидит doskey; забыть все свои многолетние и тщательно назначенные псевдонимы. поэтому я прекратил использовать его. хотя я пропускаю все функции. - easl


Нет, история командной строки Windows не может быть сохранена при завершении сеанса.


18
2017-12-17 18:11



серьезно? откуда ты это знаешь? Извините за допрос вас, я думаю, вы правы, но как вы можете знать, если вы запрограммировали эту проклятую вещь;) - raoulsson
Хорошо, позвольте мне перефразировать :-) Командный интерпретатор Windows («cmd.exe») не предоставляет никакой поддержки для сохранения / экспорта / хранения истории, из которых, Microsoft не документировала его, и никто никогда не мог найти его. Вы можете, конечно, попытаться обойти это, как предложил Шон, но есть (или, похоже, нет) встроенная поддержка для этого. - Massimo
Вы можете нажать F7, чтобы просмотреть список истории текущего сеанса. - jftuga
ТЕКУЩИЙ session - это ключевое слово здесь. - Massimo
Вы можете просмотреть / сохранить историю, запустив doskey.exe /history (это также означает, что есть ярлык F7, BTW), но нет способа загрузить его обратно в следующую сессию. - Coderer


Массимо правильно, что история командной строки не сохраняется на всех сеансах. Вы можете вручную захватить это, прежде чем закрывать запрос, набрав doskey / history> history.txt

Или ... вы могли бы использовать PowerShell как ваш запрос CMD, и следуйте эта почта чтобы сохранить свою историю на всех сеансах.


14
2017-12-17 19:52





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

Clink объединяет родную оболочку оболочки cmd.exe с мощными функциями редактирования командной строки библиотеки GNU Readline, которая обеспечивает богатые возможности для завершения, истории и редактирования строк.

Самый простой способ установки клинка - использовать шоколадным, Как только вы установите шоколадный, вы можете установить клик, набрав

choco install clink

Начиная со следующего запуска cmd.exe, он должен хранить историю через сеансы.


10
2017-08-14 06:37



Наконец решил дать Chocolatey выстрел из-за этого поста. Установка была такой же простой, как и brew в macOS. И теперь у меня есть командная строка Bash в Windows! - TranslucentCloud


Можно сохранить текущую историю в файл,

`$ doskey /history > somefile.txt`

Но, похоже, нет способа загрузить его обратно в историю. Можно использовать аргумент командной строки для загрузки и выполнения всех строк,

cmd.exe /K somefile.txt

, что может быть полезно для загрузки списка макросов doskey. Этот вызов может быть включен в ярлык, поэтому вам не нужно вводить его каждый раз; эта ссылка содержит некоторую дополнительную информацию об этом подходе,

Аналогичный вопрос на суперпользователе которые принесут некоторые альтернативы, в том числе звенеть, как это предлагает @RobertBak.


6
2018-03-23 13:15



Хм, чтобы загрузить его обратно в историю, разве вам просто нужно сохранить его в .bat-файл и запустить его? - Pacerier
@Pacerier, выполняющий команды снова, наверняка включит их обратно в историю, но, вероятно, будет иметь большие побочные эффекты. Представьте, что вы удаляете некоторые файлы через оболочку, а затем воссоздаете их за пределами оболочки через долгий и болезненный процесс. Перезагрузка истории с помощью вашей процедуры неожиданно удалит файлы. - mMontu
@Pacerier вы понимаете, что «запустить его» означает выполнение всех этих команд, не так ли? Это не просто загрузка их в историю, но и фактическое их влияние на вашу систему. - ADTC


История команд:     Чтобы включить историю команд (к которым можно получить доступ, используя     стрелки вниз) просто выполните команду doskey по команде     незамедлительный. Например, чтобы создать историю команд из 100 элементов:

doskey /listsize=100

ссылка:https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php


1
2018-02-14 13:08



Это вообще не отвечает на вопрос? - Chopper3
Не работает в Windows 10. - TranslucentCloud