1

いくつかのファイルを選択して所定の場所からダウンロードできるようにするPHP スクリプトを作成しようとしています。以前に作成したPowershell スクリプトに配列を渡して、 Powershell スクリプトにダウンロードを処理させたいと思います (基本的に、php ファイルは、ダウンロードする必要があるものをPowershellファイルに伝える必要があります)。私はいくつかのオプションを見てきましたが、これは私がexecこれに使用すべきコマンドのようです (私は必要のないコマンドライン出力を気にしないのでshell_exec)。

これまでのところOFF、このコマンドを使用できるようにセーフ モードをオンにしました。また、 phpファイルはサーバーから実行されますが、powershellファイルはローカル マシン上にあることに注意してください。

パラメータの受け渡しを処理するこれまでのコードのスニペットは、次のようになります。

if(isset($_POST['formSubmit'])) 
{
    $choosePlugin = $_POST['wpPlugin'];
    $chooseTheme = $_POST['wpTheme'];

    if(isset($_POST['wpTheme'])) 
    {
        echo("<p>You selected: $chooseTheme</p>\n");
        exec('powershell.exe C:\Wordpress Setup\setupThemes.ps1 $chooseTheme');

    } 
    else 
    {
        echo("<p>You did not select a theme</p>\n");
    }

の中に何を入れようか、ちょっと迷いexecます。上記のコードを実行すると、エラーは発生しませんが、何も起こりません。私はこれに少し慣れていないので、さらに情報が必要な場合は申し訳ありません。どんな助けでも感謝します。

4

2 に答える 2

2

やってみてください:

echo exec('powershell.exe C:\\Wordpress Setup\\setupThemes.ps1 $chooseTheme');

powershell.exe の結果を表示するには (二重の \ を覚えておいてください)、exe ファイルへの絶対パスを必ず入力してください。

 echo exec('c:\\PATH_TO_POWERSHELL.EXE\\powershell.exe C:\\Wordpress Setup\\setupThemes.ps1 $chooseTheme');
于 2012-07-23T18:17:51.160 に答える
0

変数の内容を渡したい場合は、二重引用符を使用して実際に展開する必要があると思います。さらに、パスにスペースが含まれているため、スクリプト名を引用する必要があります。

exec("powershell.exe \"C:\Wordpress Setup\setupThemes.ps1\" $chooseTheme");
于 2012-07-23T18:22:41.223 に答える