Есть ли способ сохранить историю команд 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).
Дополнительная информация о функции AutoRunCMD: https://superuser.com/a/302553/333316
$gвставляет >, и $tявляется разделителем команд.
>и &&символы непосредственно в Doskey псевдоним?
doskey quit=doskey /historyи сохранить результаты создания макроса в лог-файле (либо ничего, либо сообщение об ошибке); затем закройте окно (откажитесь от всего). ^-Я думаю, вы могли бы избежать этих персонажей с помощью вместо. Как ^>^>и ^&(... и да, вам нужен только один амперсанд)