Windows批处理脚本使控制台窗口保持打开状态

Windows批处理脚本使控制台窗口保持打开状态,windows,batch-file,nginx,php,Windows,Batch File,Nginx,Php,我正在尝试设置一台friends Windows 7计算机来运行Nginx和PHP5。我在网上找到了一个启动和停止Nginx&PHP的脚本,在添加了目录更改行之后,我就能够让它工作了。但是,似乎有一个问题导致它将启动PHP的第二个控制台窗口保持打开状态。有没有办法关闭控制台窗口 批处理脚本: @ECHO OFF CD C:\nginx tasklist /FI "IMAGENAME eq nginx.exe" | find /I "nginx.exe" > NUL &&

我正在尝试设置一台friends Windows 7计算机来运行Nginx和PHP5。我在网上找到了一个启动和停止Nginx&PHP的脚本,在添加了目录更改行之后,我就能够让它工作了。但是,似乎有一个问题导致它将启动PHP的第二个控制台窗口保持打开状态。有没有办法关闭控制台窗口

批处理脚本:

@ECHO OFF

CD C:\nginx

tasklist /FI "IMAGENAME eq nginx.exe" | find /I "nginx.exe" > NUL && (
    GOTO STOP
) || (
    GOTO START
)

:START
ECHO Starting nginx
start nginx
ECHO Starting PHP
start php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini
GOTO DONE

:STOP
ECHO Stopping nginx
start nginx -s quit
ECHO Stopping PHP
taskkill /f /IM php-cgi.exe

:DONE
TIMEOUT 3
你在找什么

start php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini 
/exit b
您可以使用on
START
启动应用程序,而无需打开另一个cmd窗口

START /b php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini
更新:

这似乎是php-cgi.exe的行为。有关完整的故事和解决方法,请参阅本文

php-cgi.exe启动后,将继续侦听连接 在命令提示窗口中。要隐藏该窗口,请使用微型实用程序 RunHiddenConsole

基本上,您只需d/l并解压缩到nginx目录,然后将此行更改为:

RunHiddenConsole.exe php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini

要运行.BAT,可以使用简单的vbs脚本

将其放入.VBS文件中:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
然后像这样挥动球棒:

wscript.exe "C:\invisible.vbs" "C:\YourBat.bat"

启动php\php-cgi.exe-b 127.0.0.1:9000-c:\nginx\php\php.ini&&exit,它刚刚退出脚本,php cgi窗口保持打开状态。该窗口仍然打开。这似乎是php-cgi.exe的行为。有关完整的故事和解决方法,请参阅本文。
/B
参数用于隐藏php cgi cmd窗口(使用Windows 10和php 7.2.5)。在
超时
行后放置
退出
命令。这就是你需要做的吗?@foxidrive我也试过了,但窗口还是保持打开状态?
php\php-cgi.exe-b 127.0.0.1:9000-c:\nginx\php\php.ini
@foxidrive是的,它保持打开状态我编辑了我的评论。如果提示没有返回,那么窗口正在运行服务器,这就是窗口没有关闭的原因。