2013-12-07 3 views
1

Я пытаюсь настроить друзей для Windows 7 для запуска Nginx & PHP5. Я нашел скрипт онлайн для запуска и остановки Nginx & PHP, после добавления строки изменения каталога я смог заставить ее работать. Однако, похоже, проблема связана с тем, что он покидает второе консольное окно, которое запускает PHP открытым. Есть ли способ закрыть окно консоли?Windows Batch script оставляет консольное окно открытым

Пакетный сценарий:

@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 
+0

Разместить 'exit' команду после' timeout' линии. Это то, что вам нужно сделать? – foxidrive

+0

@foxidrive Я тоже это пробовал, но окно просто остается открытым? – PhearOfRayne

+0

'php \ php-cgi.exe -b 127.0.0.1:9000 -c c: \ nginx \ php \ php.ini' <--- введите это в командной строке в' C: \ nginx'. Возвращается ли приглашение? Если нет, то работает exe. – foxidrive

ответ

1

Вы ищете

start php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini 
/exit b 
+0

Я пробовал это, но окно все еще открыто? – PhearOfRayne

+0

start php \ php-cgi.exe -b 127.0.0.1:9000 -c c: \ nginx \ php \ php.ini && exit –

+0

Это сразу же покинуло скрипт, и окно CGI PHP остается открытым. – PhearOfRayne

3

Вы можете использовать /b parameter на START, чтобы запустить приложение, не открывая другое окно CMD

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

Обновление:
Похоже, что это поведение php-cgi.exe. См. Эту статью для полной истории и обходной путь. http://wiki.nginx.org/PHPFastCGIOnWindows

После запуска PHP-cgi.exe будет держать прослушивание подключений в окне командной строки. Чтобы скрыть это окно, используйте крохотную утилиту RunHiddenConsole

В принципе, вам просто нужно г/л и распаковать RunHiddenConsole в каталог Nginx, а затем изменить эту строку:

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

Окно по-прежнему открыто. – PhearOfRayne

+0

Похоже, это поведение php-cgi.exe. См. Эту статью для полной истории и обходной путь. http://wiki.nginx.org/PHPFastCGIOnWindows – malexander

0

Для запуска .BAT Invisible вы можете использовать простой скрипт vbs.

Поместите это в файле .VBS:

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

А затем запустить BAT так:

wscript.exe "C:\invisible.vbs" "C:\YourBat.bat" 
Смежные вопросы