[PS]使用 PowerShell 下载文件

[ 2014/02/24 13:05 | by gOxiA ]
| |

powershell_logo

使用 PowerShell 下载文件

        前段时间部署了一个基于 Windows Server 2012 R2 的 Server Core 环境,在实际使用中会遇到需要从网站上下载文件的问题,因为 Server Core 并未提供 IE,所以下载就不是那么方便了。还好在 PowerShell 下可以调用 System.Net.WebClient 来实现下载。即:

$client = New-Object “System.Net.WebClient”

$client.DownloadFile(“http://www.maytide.net/info.txt”,”D:\info.txt”)

        虽然上述的脚本实现了从一个 URL 下载文件到本地,但是实际调用起来会感觉很麻烦。因为每次都要输入很长的脚本命令才能完成一个下载。gOxiA 在编程方面也没什么天赋,实属一菜鸟,参考了以前的脚本写了一个粗糙的下载脚本,其功能是执行脚本后提示输入 URL 的地址,然后再输入本地存储的文件路径,最后执行下载,并根据结果判断是否下载完毕。

        脚本中涉及了一些基本的命令代码,其中 Write-Host 用于输出提示文本;Read-Host 用于记录用户输入的数据;调用下载、下载地址、本地存储都使用变量,最后用 Test-Path 对下载的文件进行检查,并使用 if...else 进行判断。下面就是整个脚本的内容:

#清屏
Clear
#脚本基本信息提示
Write-Host
Write-Host PowerShell Download Tools Script.
Write-Host
#输入下载资源地址,赋予变量 $url
Write-Host Please enter URL address of download sources! -ForegroundColor Red
$url= Read-Host "Enter the URL..."
Write-Host
#输入文件存储路径,赋予变量 $local
Write-Host Please enter the local store path! -ForegroundColor Green
$local= Read-Host "Enter the store path..."
#调用下载,赋予变量 $dl
$dl= New-Object "System.Net.WebClient"
#执行下载
Write-Host
Write-Host Downloading... Please wait!!!
$dl.DownloadFile("$url","$local")
Write-Host
#将路径检查命令赋予变量 $result
$result=Test-Path $local
#对 $result 结果进行判断,如果是 True 表示下载完成,否则失败
if($result -eq $True)
{
    Write-Host Result status: Completed!!! -ForegroundColor Green
}
else
{
    Write-Host Result status: Failed!!! -ForegroundColor Red
}

        执行效果如下图:

image

PowerShell & Scripts | 评论(2) | 引用(0) | 阅读(17448)
gOxiA Email Homepage
2014/03/22 11:08
to:九叔,精辟!学习了
九叔 Homepage
2014/03/19 20:11
苏总,你着相了。其实脚本可以更简单一些,代码保存为aa.ps1$client = New-Object “System.Net.WebClient”$xiazaidizhi = $args[0]$bendilujing = $args[1]$client.DownloadFile(“$xiazaidizhi”,”$bendilujing”)用户在cmd下执行“PowerShell .\aa.ps1   下载地址  本地地址”就好了,$args可以传递输入参数。如果是PowerShell下,就是  “.\aa.ps1   下载地址  本地地址”另外脚本也可以改下,比如帮用户输“http://”以及本地路径前面那部分,最终打字可以更少一些。
分页: 1/1 第一页 1 最后页
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我