Применение кавычек в команде через exec()

agx

Программер :-)
Применение кавычек в команде через exec()

Требуется выполнить распаковку присланного на сервер архива. Использую функцию exec() следующим образом:
echo exec('"c:/program files/apache group/apache/htdocs\\AutomationScripts\\UTILITS\\unrar.exe" x -y c:/program files/apache group/apache/htdocs\\AutomationScripts\\TEMP\\qw.rar c:/program files/apache group/apache/htdocs\\AutomationScripts\\TEMP',$out);
Тоесть, запускаю на сервере unrar.exe и указываю необходимые параметры, в частности, пути к файлам. С путями, которые не содержат в себе символов "пробел" такая запись работает, однако если в пути пробел встречается, команда, как и следовало ожидать не выполняется.
Казалось бы, что проще - каждый из путей заключить в двойные ковычки. Если работать через командную строку, то это помогает, однако exec() в этом случае выполняетмся неверно (распаковка не осуществляется). Pleace, подскажите, каки образом можно задавать пути, чтобы избежать такой проблемы?
 

agx

Программер :-)
SiMM
Я читал это, но там нет примера, аналогичного моему. Я же говорю, если задавать пути без пробелов, то все работает, так что проблема, как мне кажется, не в использовании exec(), а в том, как задавать ее первый параметр.

-~{}~ 22.04.05 15:30:

Уфф... кажется, получилось! :)
Методом перебора всех возможных вариантов вычислил, что все работает, если всю команду заключить в дополнительные двойные кавычки. К примеру, так:
exec('""c:/q w/unrar" x -y "c:/q w/qw.rar" "c:/q w/ex""',$out);
 
Сверху