wscript.shell работает файл с пробелом в пути с PHP - PullRequest
0 голосов
/ 04 мая 2010

Я пытался использовать wscript.shell через COM-объекты с php для передачи некоторых команд cmd в библиотеку cURL (версия для DOS). вот что я использую для выполнения этой задачи:

function windExec($cmd,$mode=''){
    // Setup the command to run from "run"
    $cmdline = "cmd /C $cmd";

    // set-up the output and mode
    if ($mode=='FG'){
        $outputfile =  uniqid(time()) . ".txt";
        $cmdline .= " > $outputfile";
        $m = true;
    }
    else $m = false;

    // Make a new instance of the COM object
    $WshShell = new COM("WScript.Shell");

    // Make the command window but dont show it.
    $oExec = $WshShell->Run($cmdline, 0, $m);

    if ($outputfile){
        // Read the tmp file.
        $retStr = file_get_contents($outputfile);
        // Delete the temp_file.
         unlink($outputfile);
    }
    else $retStr = "";

    return $retStr;
}

теперь, когда я запускаю эту функцию, как:

windExec("\"C:/Documents and Settings/ermac/Desktop/my project/curl\" http://www.google.com/", 'FG');

curl не запускается, потому что есть проблема с путем. но когда я удаляю пробелы с пути, это прекрасно работает.

windExec("\"C:/curl\" http://www.google.com/", 'FG');

поэтому мой вопрос: как я могу избежать этих пробелов в командах wscript.shell? Есть ли в любом случае, я могу это исправить?

заранее спасибо:)

1 Ответ

0 голосов
/ 04 мая 2010

нвм я нашел решение: есть:

windExec("cd C:/Documents and Settings/ermac/Desktop/my project/libs & curl.exe -L http://www.google.com/", 'FG');
...