Есть ли способ сохранить историю команд cmd между сессиями?
Есть ли способ сохранить историю команд cmd между сессиями?
Ответы:
Переключитесь на использование PowerShell и следуйте инструкциям на следующем сайте, чтобы включить историю:
В качестве альтернативы, в cmd.exe вы можете использовать «doskey / history» в конце сеанса, чтобы показать, что вы набрали в этом сеансе, но нет способа действительно загрузить его в следующий сеанс.
Я нашел 2 способа, ни один из которых не требует переключения на PowerShell.
cmd.exe
но это хороший ответ, и clink также поддерживает режим впрыска.
cmd
с ним, проблем не было, очень доволен.
Сохранение истории - это небольшой рабочий процесс - вот менее «тяжелый» способ сделать это (без внешних библиотек).
Создайте файл 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
Каждый раз, когда я закрываю сеанс, я нажимаю «выйти» - или, если я боюсь потерять историю в середине сеанса, я нажимаю «сохранить». Если я хочу найти что-то в истории, я просто нажимаю «Ключевое слово истории».
Согласно комментарию @ dave_thompson_085, AutoRun
функция работает хорошо, если вы не хотите использовать /K
переключатель. Если вы правильно настроили ключ реестра, .cmd
или .bat
нет необходимости в нем %AppData%
, он может находиться в том же месте, в котором он уже находится.
Если вы используете %AppData%
местоположение, учтите, что cmd, вероятно, будет искать ваш командный файл в папке «Roaming» (вместо корня AppData).
Дополнительная информация о функции AutoRun
CMD: https://superuser.com/a/302553/333316
$g
вставляет >
, и $t
является разделителем команд.
>
и &&
символы непосредственно в Doskey псевдоним?
doskey quit=doskey /history
и сохранить результаты создания макроса в лог-файле (либо ничего, либо сообщение об ошибке); затем закройте окно (откажитесь от всего). ^
-Я думаю, вы могли бы избежать этих персонажей с помощью вместо. Как ^>^>
и ^&
(... и да, вам нужен только один амперсанд)