Como desativar o fechamento automático do prompt de comando após a conclusão?

18

Eu sei que houve alguns truques com versões mais antigas do Windows para fazer isso, mas não tenho certeza no Windows 7.

Se eu tivesse um software que executa um comando com opções, resultando em uma janela do cmd.exe abrindo e fechando rapidamente, como reconfigurar o prompt de comando para NÃO fechar automaticamente após a conclusão da tarefa.

O truque aqui é que o comando que está sendo executado é realmente um arquivo em lotes, inclui uma instrução de pausa no final, mas a maneira como o software está tentando executar o comando está falhando. Como fecha tão rapidamente, não sabemos qual erro está sendo retornado, pois fecha muito rapidamente.

Mythics
fonte
Boa pergunta, silenciosamente, eu também gostaria de saber disso, porque às vezes os patches de jogos / software chegam nos arquivos .BAT, fechando após as instruções serem executadas sem pausar e exibir comandos executados para o usuário final.
Boris_yo 23/05
11
Por que não abrir uma janela de comando, cd para esse diretório e executar o lote a partir daí? Isso seria executado na mesma janela cmd sem fechamento que permaneceria aberta quando o lote terminasse. Isso pode lhe dar algumas dicas para ajudar a depurá-lo.
jdh 23/05
Obrigado slhck, você me apontando para esse local parece a possibilidade mais próxima de conseguir o que eu quero está no registro do batfile / cmdfile.
Mitos

Respostas:

8

Em vez de executar esse .batarquivo diretamente do Explorer ou qualquer outro método usado, inicie manualmente cmd.exe(se necessário com privilégios elevados) e execute o .batarquivo a partir daí. Então, após a conclusão de sua execução, você ainda verá toda a saída ... como nos bons e velhos tempos do DOS. :)

Mxx
fonte
Pressione Iniciar, digite cmde pressione enter. Você abrirá um prompt de comando. Basta arrastar e soltar o que você precisa executar (seu script python ou .exe) nas janelas do cmd e pressionar enter.
JinSnow
6

No seu arquivo .bat, use o pausecomando Isso impedirá que o arquivo .bat seja fechado.

Por exemplo, este é o meu arquivo bat que eu uso para iniciar o serviço MySQL no meu PC:

net start MySQL
pause

Nota: No Windows 7, inicio este arquivo .bat a partir do nome do administrador. Para fazer isso, clique no botão direito do mouse no arquivo .bat e escolha "Iniciar no nome do administrador" no menu suspenso.

Nikita
fonte
5

Você precisa usar a opção / k ao ligar.

Detalhes úteis aqui .

Shevek
fonte
1

Nos scripts .bat, você deixa a opção "exit" no final do script para deixar a janela de comando aberta.

Uma janela de comando aberta por um script sempre se fecha no final do script porque depende do script. Abrir a janela e executar o script não a fecha, a menos que você tenha especificado o comando "exit" no final do script, porque a janela não depende do script.

Parece que não há uma maneira de impedir que uma janela dependente de script seja fechada quando o script terminar no Windows 7. No entanto, é possível que as mensagens de erro sejam registradas em outro local. O programa possui um arquivo de log? Ou existem entradas nos logs do Windows?

music2myear
fonte
0
pause>nul

isso deve funcionar.

Responda
fonte
2
Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original. "O truque aqui é que o comando a ser executado é realmente um arquivo de lote, inclui uma declaração pausa no final, "
DavidPostill
0

Pressione starte digite cmde pressione enter, você iniciará um prompt de comando. Basta arrastar e soltar o que você precisa executar (seu script python, .exe ...) nas janelas do cmd e pressionar enter. (Se você precisar executar o cmd como administrador, encontre o cmd no menu Iniciar, clique com o botão direito do mouse e escolha run as admin) (Funciona no Windows 7)

JinSnow
fonte
Não publique a mesma resposta em várias perguntas. Se a mesma informação realmente responder a ambas as perguntas, uma pergunta (geralmente a mais recente) deve ser fechada como duplicata da outra. Você pode indicar isso votando para fechá-lo como duplicado ou, se você não tiver reputação suficiente para isso, levante uma bandeira para indicar que é uma duplicata. Caso contrário, adapte sua resposta a esta pergunta e não cole a mesma em vários lugares.
DavidPostill
0

Eu estava com esse problema há um tempo e finalmente percebi o que está acontecendo.

Quando você inicia uma tarefa com o agendador de tarefas e é um arquivo bat, ele abre a janela do cmd para C: \ WINDOWS \ system32 e NÃO onde o arquivo bat está localizado. Por quê? Eu não tenho idéia! Então o que eu tive que fazer é adicionar o diretório com cd no arquivo bat.

Exemplo abaixo:

cd c: \ blahblahblah

startmyprogram.exe

user38300
fonte
Sua resposta cria muita confusão e você não consegue estabelecer a razão por trás do problema que o OP encontrou. Melhor você consultar este link superuser.com/help/how-to-answer , irá ajudá-lo a responder.
Clive S