1

是否有任何等效webget于 WindOS 的 PowerShell 的命令?

我正在尝试创建一个脚本来从网站下载所有公开可用的文件。我正在制作自定义脚本,因为我需要将文件存储在特定的目录结构中(取决于名称、类型和大小)。

4

4 回答 4

6

在 PowerShell v2 中,使用 WebClient:

(New-Object System.Net.WebClient).DownloadFile($url, $localFileName)  

在 v3 中,Invoke-WebResquestcmdlet:

Invoke-WebRequest -Uri $url -OutFile $localFileName

另一种选择是使用Start-BitsTransfercmdlet:

Start-BitsTransfer -Source $source -Destination $destination
于 2012-10-23T06:16:25.127 回答
3

在 PowerShell V3 中,您可以使用新的 cmdletInvoke-WebRequest向网站/服务发送 http 或 https 请求,例如:

$r = Invoke-WebRequest -URI http://www.bing.com?q=how+many+feet+in+a+mile

但是,要专门下载文件,使用 .NET API WebClient.DownloadFile() 可能是最简单的,例如:

$remoteUri = "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png"
$fileName = "$pwd\logo.png"
$webClient = new-object System.Net.WebClient
$webClient.DownloadFile($remoteUri, $fileName)  
于 2012-10-23T05:03:33.817 回答
0

如果您更喜欢在 PowerShell V2 或 V3 中工作的“本机”PowerShell cmdlet,我建议您Get-HttpResource从 PowerShell Community Extensions ( PSCX ) 获得。虽然 PSCX 令人惊讶地没有在线可用的 API(您必须安装扩展,然后才能使用普通的 PowerShell 帮助来探索每个命令),但我设法在此处找到了 Get-HttpResource 的 API 。使用 cmdlet 可以像这样简单:

 $myPage = Get-HttpResource http://blogs.msdn.com/powershell

但是,cmdlet 有多种参数可让您指定媒体类型、凭据、编码、代理、用户代理等。

于 2012-10-23T12:43:49.220 回答
0

您可以使用 .NET 类WebClient下载文件。

PS > $source = "http://www.unsite.fr/untruc.zip"
PS > $destination = "c:\temp\untruc.zip" 
PS >
PS >$wc = New-Object System.Net.WebClient
PS >$wc.DownloadFile($source, $destination)
于 2012-10-23T04:58:55.540 回答