Это звучит очень просто, но я должен что-то упустить. У меня есть пользовательская программа exe, которая находится внутри C:\dummy\dummytest.exe
и у меня есть текстовый файл внутри C:\text\test.txt
. Все, что я хочу сделать, это запустить dummytest.exe, передав test.txt в качестве аргумента в PHP. Вот что я пробовал: $arg = "C:\text\test.txt" exec("C:\dummy\dummytest.exe".$arg);
Я попробовал только один сингл '\'. И я попробовал exec("C:\dummy\dummytest.exe $arg");
но ничего не работает. Я получаю C:\dummy is not recognized as an internal or external command, operable or batch file error.
Когда я C:\dummy\dummytest.exe test.txt
в командную строку вручную и выполняю C:\dummy\dummytest.exe test.txt
приложение работает нормально. Что мне здесь не хватает с exec?
Вместо этого используйте команду "shell_exec".
shell_exec("[BAT or EXE-File] [Params]");
Надеюсь это поможет!
РЕДАКТИРОВАТЬ
При использовании исполняемых файлов и параметров с помощью путей вы должны их процитировать. Итак, пример будет выглядеть так:
echo nl2br(shell_exec("\"F:\\N3V Games\\Trainz Simulator 12\\compile_gs.bat\" \"F:\\xampp\\htdocs\\SHELL\\EBuLa.gs\""));
В этом примере выводится вывод CMD-Window непосредственно на страницу.
Если исполняемый файл помещается в тот же каталог, что и php файл, который вы можете запустить:
echo nl2br(shell_exec("compile_gs.bat EBuLa.gs"));
shell_exec("C:\\dummy\\dummytest.exe C:\\text\\test.txt");