Por que o comando “cmd / k” redefine / limpa / apaga o histórico de comandos?

2

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?

    
por Stefan 13.01.2015 / 10:31

2 respostas

2

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

    
por 13.01.2015 / 10:43
1

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.

    
por 13.01.2015 / 16:36