【发布时间】:2018-06-15 16:28:35
【问题描述】:
我正在使用以下脚本通过 powershell 下载文件。
$folder = "c:\temp\"
$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101
Firefox/7.0.1"
$web = New-Object System.Net.WebClient
$web.Headers.Add("user-agent", $userAgent)
Get-Content "c:\temp\URL_List.txt" |
Foreach-Object {
"Downloading " + $_
try {
$target = join-path $folder ([io.path]::getfilename($_))
$web.DownloadFile($_, $target)
} catch {
$_.Exception.Message
}
}
URL_List.txt 文件包含我尝试从中下载文件的 URL 列表。以下是列表中的示例 URL:https://drive.google.com/uc?export=download&id=0B84LPHCa2YmdZmFMV0dsYl9FeTg 如果您查看 URL,则 URL 中没有绝对文件名,因此我不确定如何为 WebClient.DownloadFile() 方法设置目标参数。
【问题讨论】:
-
您有什么方法可以在下载文件后导出文件名吗?您可以使用
[System.IO.Path]::GetTempFileName()生成一个 tmp 文件以将请求写入其中,直到您弄清楚它的名称。另外,什么版本的 PowerShell?您应该使用Invoke-WebRequest -OutFile而不是手动操作 .net(作为最佳实践)
标签: powershell google-drive-realtime-api webclient