1
我一直在扼杀我的大脑和我的电脑,希望有人能帮助我。使用参数执行PHP中的powershell脚本
我有一个PHP网站,需要执行一个PowerShell脚本,然后执行和执行。
调用的.ps1的PHP是
define('updaterPath','C:\\artemis\\DbUpdateUtility1.0.12.2');
define('outputLocation',updaterPath.'\\Output');
$CMD = updaterPath . '\\ArtemisXmlUtil.exe';
$action = 'import';
$args= ' -f' . outputLocation;
$psScriptPath = '.\\get-process.ps1';
$query = shell_exec("powershell -command $psScriptPath -cmd '$CMD' -action '$action' -paras '$args' < NUL");
我的.ps1脚本是:
param(
[string]$CMD,
[string]$action,
[string]$paras
)
& $CMD $action $paras
现在,当我回显完整的命令,它看起来完美的,可以复制和粘贴到PowerShell并成功运行,但是当我尝试从PHP实际执行它时,它只运行$ CMD变量并忽略$ action和$ paras。
我试图concactenating变量全部为1个字符串,但失败,因为甚至不能够看到可执行文件。
完整的命令shouls样子:
C:\artemis\DbUpdateUtility1.0.12.2\ArtemisXmlUtil.exe import -fC:\artemis\DbUpdateUtility1.0.12.2\Output