У меня странная ситуация с очень простым пакетным файлом, который я хочу запустить из PHP, и получить код выхода этого.
Если я запускаю пакетный скрипт из cmd.exe
, echo %errorleve%
вернет правильный код завершения, в данном случае 12
.
Из PHP-скрипта код выхода: 0
.
my_batch.bat file
@ECHO OFF
if "1"=="1" (
if "1"=="1" (
echo quitting
exit /B 12
)
echo anything
)
my_test.php
<?php
exec('my_batch.bat',$result,$exitcode);
echo $result[0];
echo '<br />';
echo $exitcode;
Вывод из cmd.exe
D:\tools\xampp\htdocs\test>my_batch.bat
quitting
D:\tools\xampp\htdocs\test>echo %errorlevel%
12
D:\tools\xampp\htdocs\test>
Выходные данные о php:
quitting
0
Спасибо за вашу поддержку
РЕДАКТИРОВАТЬ 1
очень странно, если я изменю код с этой версией, все работает хорошо
my_batch.bat file
@ECHO OFF
if "1"=="1" (
if "1"=="1" (
echo quitting
SET MYERROR=12
GOTO:END
)
echo anything
)
:END
echo finished ... ERRORLEVEL "%MYERROR%"
exit /b %MYERROR%