Как правильно выполнить приложение с параметрами в Windows с помощью php

#php #windows

Вопрос:

Я застрял с этим надолго.

Я создаю кроссплатформенное приложение, которое поможет запускать определенные команды в Linux или Windows. Он был создан для Windows с использованием PHP.

В Linux это работает просто отлично.

Но в Windows, когда я пытаюсь выполнить приведенную ниже команду — это просто не работает

 $command = ""C:Program Filessome folderapp.exe" -B backup c:directoryfile.bak";
$output = $exit_code = null;
exec("start ".$command, $output, $exit_code);
 

Приведенный выше код работает, если я передаю команду Linux.

В Windows я получаю следующую ошибку:

введите описание изображения здесь

Когда я пытаюсь зарегистрировать команду перед ее выполнением, я получаю значение команды, переданное как:

 ^"C:^Program Files^some folder^app.exe^" -B backup c:^directory^file.bak
 

Странно.

Я искал, и никакие решения, найденные в Интернете, не сработали 🙁

Комментарии:

1. Попробуйте использовать обычные косые черты вместо обратной косой черты

2. Это сработало. Кроме того, я заметил, что в другом классе перед передачей команды я избегал команды. Теперь исправлено. Если вы опубликуете свой ответ в качестве ответа, я могу его принять. @PhilipF.

Ответ №1:

Как упоминалось в моем комментарии, вы должны использовать обычные косые черты (‘/’) вместо обратных косых черт (‘/’).

Ваша команда должна выглядеть так:

 $command = ""C:/Program Files/some folder/app.exe" -B backup c:/directory/file.bak";
 

Это связано с тем, что обратная косая черта используется для экранирования символа.