![为什么“cmd /k”会重置/清除/删除命令历史记录?](https://linux22.com/image/1436967/%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%9Ccmd%20%2Fk%E2%80%9D%E4%BC%9A%E9%87%8D%E7%BD%AE%2F%E6%B8%85%E9%99%A4%2F%E5%88%A0%E9%99%A4%E5%91%BD%E4%BB%A4%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%EF%BC%9F.png)
有人能解释一下为什么cmd /k
会清除我的窗口终端 () 的命令历史记录吗CMD
?当我在之前运行批处理文件CMD
并将其放在cmd /k
行末时,运行后命令历史记录将为空。
如果我cmd /k
从脚本中删除,我就可以像往常一样浏览命令历史记录。
是什么原因?
答案1
通过指定cmd
为命令,它实际上在“cmd”内启动了“cmd”......它有自己的进程,因此有自己的缓冲区和命令历史记录:
希望我整理的这个简单易懂的插图能有所帮助
答案2
正如 Fazer87 所说,启动的新 cmd 会话CMD /K
有自己的命令历史记录。我想 CMD.EXE 的设计者本可以选择复制父历史记录,但他们选择不这样做。
当您使用 EXIT 返回到父 cmd 会话时,您将取回原始命令历史记录。