我需要自动执行从'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执行此操作?
我非常喜欢初学者。任何帮助都将有用。
答案 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()有没有更简单的方法呢?