2016-04-20 2 views
1

Пытается запустить образец пакетного файла с php, чтобы закрыть браузер Firefox. но он не закрывает браузеры. вручную, если выполнить командный файл из командной строки, он работает.Пакетный файл не выполняется с php

closebrowsers.bat

tskill firefox 

close.php

<?php 

exec('cmd /c C:\wamp\www\fedex\closebrowsers.bat'); 

print "done"; 
?> 

Пытался с абсолютным путем, не абсолютный путем, избежать обратного косой черты.

exec('cmd /c C:\\wamp\\www\\fedex\\closebrowsers.bat'); 

exec('cmd /c closebrowsers.bat'); 

ответ

0

В качестве альтернативы tskill вы можете использовать taskkill

<?php 

print `C:\\Windows\\system32\\taskkill.exe /F /IM chrome.exe /T`; 
// or event without the full path to the executable 
// print `taskkill.exe /F /IM chrome.exe /T`; 
// and even without the full executable name 
// print `taskkill /F /IM chrome.exe /T`; 

будет выводить что-то на линии

SUCCESS: The process with PID 16972 (child process of PID 17912) has been terminated. 
SUCCESS: The process with PID 10200 (child process of PID 17912) has been terminated. 
.... 
SUCCESS: The process with PID 16764 (child process of PID 17912) has been terminated. 
SUCCESS: The process with PID 17912 (child process of PID 2760) has been terminated. 

Нет необходимости в отдельном пакетном файле.
/F - принудительно завершает процесс
/IM - передает имя изображения, экс. chrome.exe
/T - убить дочерние процессы слишком

Вы можете использовать exec вместо операторов кавычки.