Usar 'start "http://ipAddress:Port/"' abre um novo prompt de comando?

Usar 'start "http://ipAddress:Port/"' abre um novo prompt de comando?

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 de 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 startcomando porque se eu executar o servidor HTTP primeiro, os próximos comandos NÃO EXECUTARÃO.

Eu até instalei alguns .exeprogramas personalizados antigos que adicionavam pequenos recursos para consertar coisas como essa, mas nenhum deles funcionou corretamente...


EDITAR

Na verdade, descobri que era ""isso que fazia com que o link não fosse aberto, mas ele carregava o site ANTES do servidor HTTP ser iniciado. Portanto, minha NOVA pergunta é: Como executo meu http.servercomando ANTES do startcomando sem que ele funcione (executar qualquer comando após um comando do servidor HTTP não funcionará, pois tudo depois dele nunca será executado).

EDITAR novamente

Obrigado mais uma vez 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...

então, OU remova -b/--bind e simplesmente escreva seu endereço PESSOAL nesse campo inicial.

Responder1

Você pode aproveitar o startcomando em ambas as chamadas. Por exemplo, usando um arquivo em lote no Windows:

@echo Off

@rem Start two separate processes via the Windows "start" command.
@rem The second command to open the browser will not be blocked.

@rem start the Python HTTP server with a minimized command window ("/min").
start "" /min python -m http.server 8000 --bind 127.0.0.1

@rem Give the HTTP server a second to start (optional).
sleep 1

@rem Open Firefox to the Python HTTP server instance.
start "" firefox http://localhost:8000

Ou você pode usar quase exatamente os mesmos comandos em Python com osubprocessomódulo:

#!/Programs/Python37/python

# Start two separate processes via the Windows "start" command.
# The second command to open the browser will not be blocked.

import sys
import subprocess
import time

# "/min" (below) minimizes the spawned command window (Windows).
try:

    subprocess.run('cmd /c start "" /min python -m http.server 8000 --bind 127.0.0.1')
    # subprocess.run('cmd /c start "" /min python http-server.py')

    # Wait for our server to start (optional)
    time.sleep(1)

    # Open our browser
    subprocess.run('cmd /c start firefox http://localhost:8000')

except Exception as err:
    print('')
    print(err)
    sys.exit()

Por outro lado, como você apontou corretamente nos comentários abaixo, você pode omitir o nome do navegador (por exemplo, firefox) em seu startcomando para simplesmente abrir o site no navegador padrão do Windows (ou seja, start "" http://localhost:8000ou mesmo apenas start http://localhost:8000).

informação relacionada