为什么windows10 cmd中的启动命令会在新打开的窗口中放置另一个带有php的启动?

为什么windows10 cmd中的启动命令会在新打开的窗口中放置另一个带有php的启动?

我想做的是,我想运行本地 php 服务器,然后http://localhost:8000在 chrome 中打开。为此,我在 Windows 10 操作系统中创建了一个 bat 文件。这是我的第一次尝试:

php -S localhost:8000 -t C:\User\Projects\Sandbox 
http://localhost:8000

问题是,第一行执行后,cmd 陷入监听服务器的循环,第二行永远无法执行。另外,我不想先打开 localhost 网页,因为它会持续显示错误几秒钟,直到 php 完成它的工作。现在我找到的解决方案是以下 bat 文件:

start php -S localhost:8000 -t C:\User\Projects\Sandbox 
start http://localhost:8000

这确实完成了工作,但我看到了一个奇怪的行为。我期望第一行打开一个新的 cmd 窗口并执行php -S localhost:8000 -t C:\User\Projects\Sandbox,但它所做的是,它打开一个新的 cmd 窗口并执行此start php -S localhost:8000 -t C:\User\Projects\Sandbox。这会打开 php 自己的 shell(带有 php 徽标),然后继续-S localhost:8000 -t C:\User\Projects\Sandbox在新控制台中执行。

  1. 如果我start php在 cmd 中执行此操作,它会打开 php shell。然后,如果我进入-S localhost:8000 -t C:\User\Projects\Sandbox该 php shell,它不会打开本地服务器,为什么?

  2. 当我运行 bat 文件时,为什么不start打开一个新的 cmd 窗口并放置php -S localhost:8000 -t C:\User\Projects\Sandbox并保留该 cmd 窗口?相反,为什么它会打开start php -S localhost:8000 -t C:\User\Projects\Sandbox那个新cmd窗口,退出并打开 php shell?

  3. 有什么办法可以让服务器在 cmd 窗口中运行,然后以某种方式打开本地主机网页?

答案1

也许在背景中使用 1st?

start "" /b


@echo off

rem :: use cd /d path to php

cd /d "c:\php"
start "" /b php -S localhost:8000 -t C:\User\Projects\Sandbox 
start "" http://localhost:8000

看一看这里是关于 php 中的多会话

相关内容