Windows从web下载文件的几种方式

最近搞app自动化测试,需要自动从网页上下载apk用于测试,顺便学习了几种从web下载文件的方式。

一、PowerShell DownloadFile 命令

PowerShell 是一种winodws原生的脚本语言,使用很方便,可以实现很多复杂的功能。

首先启动PowerShell,可以在cmd里执行 start powershell,也可以按住shift建右击选择打开powershell

启动powershell后输入如下命令:

$client = new-object System.Net.WebClient
$client.DownloadFile(‘url‘, ‘file‘)

 这里的url是下载文件的地址,file是文件保存路径(包括文件名)。如果出现报错如下:使用“2”个参数调用“DownloadFile”时发生异常:“在 WebClient 请求期间发生异常。”

就是文件保存路径没有写完整,一定要包括文件名。如:D:\app-release.apk

在Jenkins build step 中执行 PowerShell 命令

当然这是手动在powershell命令行执行的,并没有实现自动化。我们需要把它放到Jenkins中去实现。

在Jenkins中执行powershell命令需要先安装相应插件如下:

安装完重启,就可以在任务构建中添加执行powershell命令的操作:

填入上面的两条命令,就可以执行文件下载操作了。

多个build step

如果有多个step呢?如果想要在下载文件失败后进行其他操作呢?

上面的操作,无论怎么执行 PowerShell 命令,build step 的结束状态都是 "成功"(包括一些命令执行失败的情况)。这是因为PowerShell 执行的过程中没有执行 exit 调用,Jenkins 无法判断执行的命令是否成功退出,所以就默认是成功的了。实际上,当命令执行失败或是满足一些条件时,我们希望 build step 的结束状态是 "失败",后续的 build step 根据前面 step 的结束状态决定是否执行。

这就需要在PowerShell 命令执行后执行 exit 调用:判断脚本执行成功时调用 exit 0;判断脚本执行失败时调用 exit 1

也就是执行三条命令,例如:

$client = new-object System.Net.WebClient
$client.DownloadFile(‘url‘, ‘file‘)
exit 1

二、python实现文件下载

未完待续

原文地址:https://www.cnblogs.com/Dahlia/p/10670455.html

时间: 2024-10-10 20:13:48

Windows从web下载文件的几种方式的相关文章

Asp.Net 下载文件的几种方式

asp.net下载文件几种方式 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题. 代码如下: */ Response.ContentType = "application/x-zip-compressed";

php下载文件的一种方式

<?php ob_start(); // $file_name="cookie.jpg"; $file_name="abc.jpg"; //用以解决中文不能显示出来的问题 $file_name=iconv("utf-8","gb2312",$file_name); //$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/&q

java 从网上下载文件的几种方式 (转)

package com.github.pandafang.tool; import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.nio.channels.Channels;import java.nio.cha

【文件下载】Java下载文件的几种方式

1.以流的方式下载. public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径. File file = new File(path); // 取得文件名. String filename = file.getName(); // 取得文件的后缀名. String ext = filename.substring(filename.lastIn

C++服务器下载文件的两种方式

#include <afxinet.h>#include "wininet.h" #pragma comment( lib, "wininet.lib" ) string remoteIP = "http://www.test.com:8001"; string testIP = getDomain("IP"); string testPort = getDomain("PORT"); if (

PHP下载文件的两种方法

PHP下载文件的两种方法与代码分享 转自:http://www.cnblogs.com/cfinder010/p/3197195.html PHP实现下载文件的两种方法.分享下,有用到的朋友看看哦. 方法一: <?php /** * 下载文件 * header函数 **/header('Content-Description: File Transfer');header('Content-Type: application/octet-stream');header('Content-Disp

用 requests 模块从 Web 下载文件

requests 模块让你很容易从 Web 下载文件,不必担心一些复杂的问题,诸如网络错误.连接问题和数据压缩.requests 模块不是 Python 自带的,所以必须先安装. requests.get()函数接受一个要下载的 URL 字符串.通过在 requests.get()的返回 值上调用 type(),你可以看到它返回一个 Response 对象,其中包含了 Web 服务器对 你的请求做出的响应. >>> import requests ? >>> res =

linux下实现web数据同步的四种方式(性能比较)

实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsync+sersync更快更节约资源实现web数据同步4.unison+inotify实现web数据双向同步 ======================================= 一.nfs实现web数据共享 nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器需

实现web数据同步的四种方式

http://www.admin10000.com/document/6067.html 实现web数据同步的四种方式 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 3.rsync+sersync更快更节约资源实现web数据同步 4.unison+inotify实现web数据双向同步 一.nfs实现web数据共享 nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器需要设置文件系统的权限和配置文件设置的权限,权限两者之间取交集,然