使用Powershell下载文件

Jus*_*Guy 13 powershell google-docs

以下Google文档会导出为CSV,然后使用标准网络浏览器自动下载:https://docs.google.com/spreadsheets/d/1wDD_Xm8IQYuYNefv9cOJ_7afTLImHgYA05pfN3qY63E/export?format= csv

我正在尝试使用Powershell下载此文件但没有成功.我尝试使用Invoke-Webrequest,Start-BitsTransfer并使用webrequest对象,但没有运气.

编辑:更改了网址.

TGl*_*zer 33

Invoke-WebRequest 附带一个参数来将其结果存储在一个文件中: -OutFile

Invoke-WebRequest URL -OutFile c:\file.ext
Run Code Online (Sandbox Code Playgroud)

如果您需要授权,可以发送如下请求:

Invoke-WebRequest URL /* whatever is neccesary to login */ -SessionVariable MySession
Invoke-WebRequest URL -WebSession $MySession
Run Code Online (Sandbox Code Playgroud)

要确定登录发生的表单的布局,可以使用Invoke-WebRequests返回对象.它将收集有关HTML上的表单和字段的信息(可能仅限Windows).登录的里程可能会有所不同,例如Two-Factor-Auth是否有效.可能你可以创建一些秘密链接到您的文件,不需要Auth或谷歌允许您创建某种类型的私人访问令牌,可以在您的请求旁边发送授权标题.

  • @JustAGuy:它(至少)与Windows PowerShell v5.1 / PowerShell Core v6.1.0-preview.3一起使用。如果对您不起作用,请在问题中添加有关您的环境的详细信息。 (2认同)

nde*_*mou 5

TLDR 回答*:

方法一,默认同步**

Invoke-WebRequest $url -OutFile $path_to_file
Run Code Online (Sandbox Code Playgroud)

方法二,默认同步**

(New-Object System.Net.WebClient).DownloadFile($url, $path_to_file)
Run Code Online (Sandbox Code Playgroud)

方法三,异步的,可能不是即时的,使用BITS服务

Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $path_to_file
Run Code Online (Sandbox Code Playgroud)

笔记:

*:此答案适用于那些在 google 上搜索“如何使用 PowerShell 下载文件”的人。

**:如果需要异步下载,请阅读帮助页面