我想做的是,我想运行本地 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
在新控制台中执行。
如果我
start php
在 cmd 中执行此操作,它会打开 php shell。然后,如果我进入-S localhost:8000 -t C:\User\Projects\Sandbox
该 php shell,它不会打开本地服务器,为什么?当我运行 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?有什么办法可以让服务器在 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