2014-09-21 68 views
1

我想要实现2执行函数PHP函数类似实现一个PHP函数

public function definition($source){ 
    shell_exec(""); 
    shell_exec(""); 
} 

里面现在我想里面有什么2 exec函数是为了实现它,首先,第一后执行一个再被执行,执行第二个。在第一个我想实现CD窗口下(移动到文件夹),像

public function definition($source){ 
     shell_exec("cd C:\myfolder"); 
     shell_exec(""); 
    } 
enter code here 

,并在第二个我想用两个参数运行python脚本,第一个是一个Python脚本,这是位于该文件夹中我刚刚搬进来,第二个是位于同一文件夹中的形象,像

public function definition($source){ 
    shell_exec("cd C:\myfolder"); 
    shell_exec("python myScript.py myImage.jpg"); 
} 

现在我想什么是从函数定义传递参数给第二蟒蛇论点有点像

public function definition($source){ 
    shell_exec("cd C:\myfolder"); 
    shell_exec("python myScript.py".$source); 
} 

现在我想听听你的解决方案,我已经尽力了,但并没有设法解决它。谢谢你的帮助和时间。

回答

2

您可以使用&一次在窗口上运行两个命令。所以,而不是做两个shell_exec你会做一个。它采取的形式。

shell_exec('CMD1 & CMD2'); 

我相信它会打开一个新的shell每次你做的时候了shell_exec,所以当你尝试运行Python命令,你实际上是在错误的目录。

如果这不起作用,您可能还会尝试使用两个&符号而不是一个。

shell_exec('CMD1 && CMD2'); 

希望这对你有用。

0

在Linux上,你可以做这样的:

$cmd = 'command to run'; 
exec('bash -c "nohup $cmd > /dev/null 2>&1 &"'); 

一旦exec命令完成这只会进步。

我不知道,如果你能做到这一点在Windows上,但如果可以的话,端部可能会是这样的:

$cmd = 'command to run'; 
exec('bash -c "$cmd > nul 2>&1 &"'); 

但是,我不知道是什么的相当于“庆典-c'会。

可能的Windows解决方案:

$shell = new COM("WScript.Shell"); 
$shell->run("your command", 0, false); 

你也可以这样做:

public function definition($source) 
{ 
    chdir('C:\myfolder'); 
    shell_exec('python myScript.py' . $source); 
    # chdir back to your script directory if needed 
} 

我不知道如果PHP将CHDIR为 'C:\ MyFolder文件' 使用该命令。

+0

如果您打算投票,请添加评论。 – 2014-09-21 01:48:49

+0

这不是我的投票结果。尽管对我没有什么帮助,但我已经给了你至少+1的尝试。 :/ – 2014-09-21 01:59:33

+1

对不起,我无法提供更多帮助,因为我不使用Windows。第一个代码就是我在Linux上使用的代码。我用它的一个版本更新了它,它可能在Windows上工作(猜测)。 – 2014-09-21 02:04:47