1

Wordpressのセットアップを自動化するPowerShellスクリプトを書いています。このスクリプトは、サイトを作成するときに複数の人が使用します。idは、機能を少し追加したいと考えています。

ピアにphpページにアクセスしてもらい、ページのテーマとプラグインを選択して選択し、その選択をPowerShellスクリプトに渡すことができます(配列を使用するのが最も簡単だと思います)。PowerShellスクリプトがこれを処理する必要がある理由は、ファイルを選択した後、PowerShellスクリプトが内部サーバーに接続して残りを処理できるためです。

私の質問は2つの部分に分かれていると思います。第一に、上記は可能ですか?もしそうなら、それはこの問題を処理する論理的な方法のように見えますか?

2番目は実際にこれを達成する方法ですか?以下は、ダウンロードページを処理するためのphp / htmlコードです。これにより、スクリプトに配列を渡すことができます。(以下のコードは、テスト目的で「temp」サイトからダウンロードされたものであり、実際には私の要件を満たしていません)

<?php

$val=$_POST['theme']; 
if($val == 'aa') {
header('Content-disposition: attachment; filename=all-in-one-slideshow.zip');
header('Content-type: application/zip');
$url  = 'http://mypage.com/wordpressFiles/all-in-one-slideshow.zip';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $path);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
} else if($val == 'bb') {
} else {
}
?>


<form action="download.php" method="post">
<select name="theme" id="theme" class="select-list">
<option value="\">Choose A Theme</option>                                       
<option value="aa">All-In-One-Slideshow</br>
<option value="bb">BB</br>
</select>   
<input type="submit" value="Download" />
</form>

よろしくお願いします。

4

1 に答える 1

0

PowerShell スクリプトを Web サーバーから直接実行すると、引数をシステム コール ( exec()passthrough()shell_exe())で に渡すことができますpowershell.exe。PowerShell が引数を実行するのと同じ順序で引数が渡されていることを確認する必要があるだけです。

引数リストまたはデータが長すぎる場合は、一時ファイルを作成できます。最善の方法は、区切り文字ベースのセットアップ ( のようなCSV) を行うことです: PHP を使用して配列からテキスト ファイルを作成し、それを (現在はstring) ファイルに保存してから、PowerShell で、同じ区切り文字でファイルをチャンクします。あなたも使用できますが、PowerShell にserialize()機能があるかどうかはわかりません。unserialize()

もちろん、上記の方法を使用すると、PowerShell に必要な引数は 1 つだけです。これは、配列を格納した一時ファイルのパスです。

また、コマンドライン引数を PowerShell ps1 ファイルに渡す方法について説明しているため、次の質問を確認する必要があります。

于 2012-07-05T17:24:11.740 に答える