Como evitar que o prompt de comando feche após a execução?
O meu problema é que no Windows, existem janelas de linha de comando que fecham imediatamente após a execução. Para resolver isto, eu quero que o comportamento padrão seja que a janela seja mantida aberta. Normalmente, este comportamento pode ser evitado com três métodos que me vêm à cabeça:
- Colocar uma linha
pause
após os programas em lote para solicitar ao utilizador que pressione uma tecla antes de sair do - Executar estes ficheiros batch ou outras ferramentas de manipulação de linha de comando (mesmo arranque do serviço, reinício, etc. com
net start xy
ou algo semelhante) dentro docmd.exe
(Start - Run - cmd.exe) - Correr estes programas com
cmd /k
assim:cmd /k myprogram.bat
Mas existem alguns outros casos em que o utilizador:
- Executa o programa na primeira vez e não sabe que o programa em questão será executado no Command Prompt (Windows Command Processor), por exemplo, ao executar um atalho do menu Iniciar (ou de outro lugar), OR
- Considera um pouco desconfortável rodar cmd.exe o tempo todo e não tem tempo/oportunidade para reescrever o código destes comandos em qualquer lugar para colocar uma pausa depois deles ou evitar sair explicitamente.
Eu li um artigo sobre a mudança do comportamento padrão do cmd.exe
ao abri-lo explicitamente, com a criação de um AutoRun entry e manipulando o seu conteúdo nestes locais:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor\AutoRun
(Os itens AutoRun são _String values_
…)
Eu coloquei o cmd /d /k
como um valor para tentar, mas isto não alterou em nada o comportamento dos itens acima mencionados… Apenas alterou o comportamento da janela da linha de comando ao abri-la explicitamente (Start-Run-cmd.exe).
Então, como funciona? Pode dar-me alguma ideia para resolver este problema?