Ok, estou totalmente confuso sobre o que diabos está acontecendo no meu prompt de comando. Estou simplesmente tentando criar um script que minimize a janela do prompt, abra um endereço IP no navegador e execute um comando simples do servidor HTTP via Python.
Eu tenho que executar o comando do servidor HTTP APÓS o start
comando porque se eu executar o servidor HTTP primeiro, os próximos comandos NÃO EXECUTARÃO.
Eu até instalei alguns .exe
programas personalizados antigos que adicionavam pequenos recursos para consertar coisas como essa, mas nenhum deles funcionou corretamente...
EDITAR
Na verdade, descobri que era isso ""
que estava fazendo com que ele não abrisse o link, mas ele carrega o site ANTES de o servidor HTTP iniciar. Portanto, minha NOVA pergunta é: como executo meu http.server
comando ANTES do start
comando sem que ele não funcione (executar qualquer comando após um comando do servidor HTTP não funcionará, pois tudo depois dele nunca é executado).
EDITAR novamente
Obrigado novamente Anaksunaman pela resposta, aqui está meu produto final para o comando: (RunHTTPServer.bat):
@echo Off
start "" /min python -m http.server 8000 -b 127.0.0.1
sleep 1
start http://127.0.0.1:8000/
Eu adicionei --bind para vinculá-lo a 127.0.0.1, pois às vezes ao usar http.server e tentar conectar-se a Localhost:8000, ele dirá que a conexão falhou ...
de modo que, OU remova -b/--bind e simplesmente escreva seu endereço PESSOAL nesse campo inicial.
Você pode aproveitar o
start
comando em ambas as suas chamadas. Por exemplo, usando um arquivo em lote no Windows:Ou você pode usar quase exatamente os mesmos comandos em Python com o módulo subprocess :
Por outro lado, como você apontou corretamente nos comentários abaixo, você pode omitir o nome do navegador (por exemplo
firefox
) em seustart
comando para simplesmente abrir o site no navegador padrão do Windows (ou sejastart "" http://localhost:8000
, ou apenasstart http://localhost:8000
).