是否有任何等效webget
于 WindOS 的 PowerShell 的命令?
我正在尝试创建一个脚本来从网站下载所有公开可用的文件。我正在制作自定义脚本,因为我需要将文件存储在特定的目录结构中(取决于名称、类型和大小)。
是否有任何等效webget
于 WindOS 的 PowerShell 的命令?
我正在尝试创建一个脚本来从网站下载所有公开可用的文件。我正在制作自定义脚本,因为我需要将文件存储在特定的目录结构中(取决于名称、类型和大小)。
在 PowerShell v2 中,使用 WebClient:
(New-Object System.Net.WebClient).DownloadFile($url, $localFileName)
在 v3 中,Invoke-WebResquest
cmdlet:
Invoke-WebRequest -Uri $url -OutFile $localFileName
另一种选择是使用Start-BitsTransfer
cmdlet:
Start-BitsTransfer -Source $source -Destination $destination
在 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)
如果您更喜欢在 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 有多种参数可让您指定媒体类型、凭据、编码、代理、用户代理等。
您可以使用 .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)