ao especificar cmd
como um comando, ele realmente lança um "cmd" dentro de um "cmd" .. o qual possui seu próprio processo e, portanto, seu próprio buffer e histórico de comandos:
Espero que essa ilustração rápida que eu coloquei ajude
Alguém pode explicar por que cmd /k
limpa o histórico de comandos do meu terminal de janela ( CMD
).
Quando executo um arquivo de lote em um CMD
anterior e coloco cmd /k
no final da linha, o histórico de comandos ficará vazio depois de executá-lo.
Se eu remover cmd /k
do script, posso passar pelo histórico de comandos como de costume.
Qual é o motivo?
Como Fazer87 disse, a nova sessão cmd lançada por CMD /K
tem seu próprio histórico de comandos. Suponho que os projetistas do CMD.EXE poderiam ter optado por fazer uma cópia do histórico pai, mas optaram por não fazê-lo.
Quando você usar EXIT para retornar à sessão cmd pai, você receberá de volta o histórico de comandos original.