Windows批处理脚本使控制台窗口打开

我试图build立一个朋友的Windows 7电脑运行Nginx和PHP5。 我发现一个脚本在线开始和停止Nginx和PHP,添加目录更改行后,我能够使其工作。 但是,似乎有一个问题导致它离开启动PHP的第二个控制台窗口打开。 有没有办法使控制台窗口closures?

批处理脚本:

@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 -cc:\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上的/ b参数来启动应用程序,而无需打开另一个cmd窗口

 START /b php\php-cgi.exe -b 127.0.0.1:9000 -cc:\nginx\php\php.ini 

更新:
看来这是php-cgi.exe的行为。 请参阅这篇文章的完整故事和解决方法。 http://wiki.nginx.org/PHPFastCGIOnWindows

启动后,php-cgi.exe将不断在命令提示符窗口中监听连接。 要隐藏该窗口,请使用小型实用程序RunHiddenConsole

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

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

您正在寻找

 start php\php-cgi.exe -b 127.0.0.1:9000 -cc:\nginx\php\php.ini /exit b 

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

把它放在一个.VBS文件中:

 CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False 

然后像这样运行你的BAT:

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