Que comando posso colocar no final de um arquivo em lotes para impedir o fechamento automático do console após a execução do arquivo?
510
Que comando posso colocar no final de um arquivo em lotes para impedir o fechamento automático do console após a execução do arquivo?
Respostas:
Nos arquivos em lotes do Windows / DOS:
Isso imprime uma boa
"Press any key to continue . . . "
mensagemOu, se você não quiser a
"Press any key to continue . . ."
mensagem, faça o seguinte:fonte
Depende da pergunta exata!
Normalmente
pause
faz o trabalho em um arquivo .bat .Se você deseja que o cmd.exe não feche para poder continuar digitando, use o
cmd /k
comando no final do arquivo.fonte
cmd /k
antes do seu comando.& cmd /k
não vai funcionar.Apenas senti a necessidade de esclarecer o que
/k
faz (no site do Windows):Portanto,
cmd /k
sem o comando de acompanhamento no final do arquivo bat, apenas acmd.exe
janela será aberta para uso posterior.Por outro lado,
pause
no final de um arquivo em lotes, basta pausar o processo e terminarcmd.exe
com o primeiro pressionamento do botãofonte
A maneira abaixo de ter comandos em um arquivo em lotes abrirá novas janelas de prompt de comando e as novas janelas não sairão automaticamente.
fonte
Se você estiver usando o Maven e desejar pular a digitação e impedir que o console se feche para ver o resultado, você precisará usar o
CALL
comando no script, além de apenas a 'instalação limpa do mvn'.Assim fechará o console
Assim o console ficará aberto
Se você não usar o
CALL
comando, nenhum dos exemplos passados funcionará.fonte
call <myCommand>
resolvido este problema: Meu fechamento imediato Stoped após a primeira execuçãoAdicione
cmd.exe
como uma nova linha abaixo do código que você deseja executar:fonte
python script.py %1 && cmd
minha maneira é escrever um lote real (dizendo "foo.bat") para concluir o trabalho; então crie outro "start.bat":
Acho que isso é extremamente útil quando eu configuro variáveis de ambiente únicas.
fonte
cmd /k
(sem nenhum comando) no final dofoo.bat
arquivo e executá-lo. Você não precisa de umstart.bat
arquivo separado .Ligue
cmd
no final do arquivo em lotes.fonte
além disso
pause
.pode ser usado. Esperará a entrada do usuário e liberará o fluxo quando pressionar enter.
ou
que fará o mesmo, exceto que nada da entrada do usuário será exibido nem permanecerá no histórico de comandos.
fonte
Possibilidade 1: Basta criar 2 arquivos .bat e escrever no primeiro:
O arquivo em lote 2 é o arquivo que não será fechado no final. Então agora, quando você abrir o lote nº 1, ele iniciará o segundo e se esconderá. Quando o 2º terminar, ele não fechará completamente (desde que você não coloque a saída no final)
Possibilidade 2: arquivo de lote 1:
Quando o 2º arquivo terminar, ele continuará com o arquivo 1 novamente e exibirá o restante. Com isso, você pode até fazer manipuladores de erros. Se o nr.1 travar, ele entra no nr.2 e o exibe
fonte
Esse pequeno truque solicita que o usuário insira uma chave e a armazene na variável% exitkey% (essa variável pode ser chamada como você quiser).
NB: o espaço após o '=' é muito importante
fonte
ou
fonte
Eu sei que estou atrasado, mas meu caminho preferido é:
Dessa forma, o usuário não pode sair usando enter.
fonte
Tive problemas com as respostas aqui, então eu vim com isso, o que funciona para mim (TM):
fonte
Há duas maneiras de fazer isso depende do caso de uso
1) Se você deseja que o prompt do cmd do Windows permaneça aberto para poder ver o resultado da execução e fechá-lo depois; usar
2) se você deseja que o prompt do cmd do Windows permaneça aberto e permita que você execute algumas palavras-chave de comando; usar
fonte
Fácil, adicione cmd à sua última linha de bastão, MAS! se você redefinir ou limpar o caminho do sistema, deverá iniciar o cmd com o caminho completo, como:
Por exemplo, eu tenho um arquivo bat para redefinir o jdk para a versão antiga como esta:
desde que redefini o caminho do sistema, tenho que executar o cmd com o caminho completo ou o sistema não consegue encontrar o cmd.exe, ele falha ao executar o cmd e fecha a janela e você não vê o erro msg .
fonte