2

Может кто-нибудь объяснить, почему cmd /k очищает историю команд моего оконного терминала (CMD). Когда я запускаю командный файл в ранее CMD и помещаю cmd /k в конце строки, история команд будет пустой после запуска.

Если я удалю cmd /k из скрипта, я смогу просмотреть историю команд как обычно.

Какова причина?

2 ответа2

2

Определяя cmd в качестве команды, он фактически запускает "cmd" внутри "cmd" .., который имеет свой собственный процесс и, следовательно, свой собственный буфер и историю команд:

Надеюсь, эта быстрая и грязная иллюстрация, которую я собрал, поможет

1

Как сказал Fazer87, новый сеанс cmd, запущенный CMD /K имеет собственную историю команд. Я полагаю, что разработчики CMD.EXE могли сделать копию родительской истории, но решили не делать этого.

Когда вы используете EXIT для возврата к родительскому сеансу cmd, вы получите исходную историю команд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .