有人能解释一下为什么cmd /k
会清除我的窗口终端 () 的命令历史记录吗CMD
?当我在之前运行批处理文件CMD
并将其放在cmd /k
行末时,运行后命令历史记录将为空。
如果我cmd /k
从脚本中删除,我就可以像往常一样浏览命令历史记录。
是什么原因?
答案1
通过指定cmd
为命令,它实际上在“cmd”内启动了“cmd”......它有自己的进程,因此有自己的缓冲区和命令历史记录:
希望我整理的这个简单易懂的插图能有所帮助
答案2
正如 Fazer87 所说,启动的新 cmd 会话CMD /K
有自己的命令历史记录。我想 CMD.EXE 的设计者本可以选择复制父历史记录,但他们选择不这样做。
当您使用 EXIT 返回到父 cmd 会话时,您将取回原始命令历史记录。