Использование «start "http://ipAddress:Port/"» открывает новую командную строку?

Использование «start "http://ipAddress:Port/"» открывает новую командную строку?

Ладно, я совершенно не понимаю, что, черт возьми, происходит в моей командной строке. Я просто пытаюсь создать скрипт, который минимизирует окно подсказки, открывает IP-адрес в браузере, а затем запускает простую команду HTTP-сервера через Python.

Мне приходится запускать команду HTTP-сервера ПОСЛЕ команды, startпотому что если я сначала запущу HTTP-сервер, то следующие команды НЕ ВЫПОЛНЯТСЯ.

Я даже установил несколько старых пользовательских .exeпрограмм, которые добавляли небольшие функции для исправления подобных проблем, но ни одна из них не работала правильно...


РЕДАКТИРОВАТЬ

На самом деле я понял, ""что это было причиной того, что ссылка не открывалась, но сайт загружался ДО запуска HTTP-сервера. Так что мой НОВЫЙ вопрос: как мне запустить мою http.serverкоманду ДО startкоманды, чтобы она не сработала (запуск любой команды после команды HTTP-сервера не сработает, поскольку все после нее никогда не выполняется).

ИЗМЕНИТЬ еще раз

Еще раз спасибо Anaksunaman за ответ, вот мой окончательный продукт для команды: (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/

Я добавил --bind, чтобы привязать его к 127.0.0.1, так как иногда при использовании http.server и попытке подключения к Localhost:8000 выдается сообщение об ошибке подключения...

так что ИЛИ удалите -b/--bind и просто напишите свой ЛИЧНЫЙ адрес в этом начальном поле.

решение1

Вы можете использовать startкоманду в обоих вызовах. Например, используя пакетный файл в 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

Или вы можете использовать почти те же самые команды в Python сподпроцессмодуль:

#!/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()

Кстати, как вы правильно отметили в комментариях ниже, вы можете опустить имя браузера (например, firefox) в своей startкоманде, чтобы просто открыть веб-сайт в браузере по умолчанию для Windows (например, start "" http://localhost:8000или даже просто start http://localhost:8000).

Связанный контент