Как использовать метод exec для запуска приложения exe и передачи аргументов в PHP?

1

Это звучит очень просто, но я должен что-то упустить. У меня есть пользовательская программа 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?

Теги:
command-line

1 ответ

2

Вместо этого используйте команду "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"));
  • 0
    Я тоже попробовал shell_exec. В моем случае я пробовал shell_exec ("C: \ dummy \ dummytest.exe C: \ text \ test.txt"); тоже не повезло.
  • 0
    Вы должны избежать обратной косой черты. Попробуйте: shell_exec("C:\\dummy\\dummytest.exe C:\\text\\test.txt");
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню