自动下载并安装exe文件

时间:2010-04-15 12:39:17

标签: php

我需要自动执行从'http://10.34.45.21:8080/cruisecontrol/artifacts/xxx_trunk_nightly_build/xxx/test/'下载和安装exe文件abc.exe的过程

我的意思是现在我必须手动转到''http://10.34.45.21:8080/cruisecontrol',然后在我最终点击abc.exe文件之前点击每个文件夹。然后它在我的机器上下载exe。然后我必须双击exe来安装它。我想自动完成整个过程,这样当我运行脚本时,它会自动下载exe文件并安装它。是否可以使用php执行此操作?

我非常喜欢初学者。任何帮助都将有用。

3 个答案:

答案 0 :(得分:3)

<?php
    $data = file_get_contents( "http://10.34.45.21:8080/cruisecontrol/artifacts/xxx_trunk_nightly_build/xxx/test/" );

    file_put_contents( "some_tmp_file.exe", $data );

    system( "some_tmp_file.exe");
?>

假设您对目录具有写权限并在该服务器上执行权限。

  

注1:文件_ * _内容为   二进制安全的。

     

注2:此方法不适用   对于非常大的文件,在这种情况下使用   php文件i / o函数。

答案 1 :(得分:1)

我愿意:

 wget -r -nc -nd -A .exe http://10.34.45.21:8080/cruisecontrol/<first common ancestor>

-r:获取目录下的所有内容

-nc:如果我已经拥有了这些东西(可能是nd冗余),请不要覆盖

-nd:没有目录。因此,每个文件都将被提取到当前目录中。

这有效地镜像了整个子树,但不会获取具有的子文件 已经下载了。这样你就可以在你的硬盘上得到很多废话,但是 哎呀,空间很便宜:) 那将是最简单的方法。

增加: wget与linux服务器上的ftp支持通配符。所以你可以指定你的文件 更直接。

-A .exe限制wget获取* .exe文件

也许是这样的: wget -r -A .exe http://10.34.45.21:8080/cruisecontrol/artifacts/ _trunk_nightly_build / / test /'

否则使用python。应该很容易。

答案 2 :(得分:0)

我基本上来自QA。因此,我们每天早上所做的就是打开一个地址为http://11.12.13.27:8080/cruisecontrol的网络浏览器。然后我们点击最后一晚的构建日期。然后我们点击文件夹说客户端。然后在该文件夹中我们点击exe文件说game.exe。然后我们得到一个保存对话框,将exe保存到我们的本地机器上(windows xp ...不是家用电脑)。然后我们转到我们下载该exe文件的地方,双击它以开始安装,然后开始测试应用程序。这必须每天完成。

我们希望自动执行此过程,以便在运行脚本或类似内容时,它会自动下载并安装exe文件。

到目前为止我尝试过的是在php中,使用copy()将exe文件复制到本地机器和exec()来执行下载的exe文件。 然后在命令提示符我说在10:00“php c:\ php php script \ automate.php的位置” 所以在上午10点运行php脚本

我尝试使用静态位置说“http://winzip.com/winzip1.2.exe”并且它工作正常。我现在只需要生成文件路径。也不确定它是否会让我在cruisecontrol上使用copy()有没有更简单的方法呢?