Есть ли способ сохранить историю команд cmd между сессиями?
4 ответа
Я нашел 2 способа, ни один из которых не требует переключения на PowerShell.
Переключитесь на использование PowerShell и следуйте инструкциям на следующем сайте, чтобы включить историю:
В качестве альтернативы, в cmd.exe вы можете использовать «doskey /history» в конце сеанса, чтобы показать, что вы набрали в этом сеансе, но не существует способа действительно загрузить его в следующий сеанс.
Сохранение истории - это небольшой рабочий процесс - вот менее "тяжелый" способ сделать это (без внешних библиотек).
Создайте файл 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.
Я использую Cygwin. Он также предоставляет некоторые другие функции, которые есть в Linux, но в Windows нет.