在没有 OutFile 的情况下调用 WebRequest?

Invoke-WebRequest without OutFile?

我在 Powershell 中使用 Invoke-WebRequest 下载了一个文件,但没有使用 -OutFile 参数,并且根据文档 here,该文件应该最终位于我所在的目录中. 然而,什么都没有。响应正常,未显示任何错误。

那个文件可能发生了什么事?我是否误解了 Invoke-WebRequest 在没有 Out 参数的情况下应该如何工作?

谢谢!

注意:我知道我可以使用参数轻松下载文件,但它非常大,我想确保它不会在我不需要的地方堵塞磁盘 space

来自linked docs

By default, Invoke-WebRequest returns the results to the pipeline.

也就是说,在没有-OutFile的情况下没有文件被创建。
(如果您不捕获或重定向输出,它将打印到主机(控制台)。)

正如 techguy1029 在评论中指出的那样,只有当您 do 使用
-OutFile 但指定一个仅仅是文件 name 而不是 path.


顺便说一句:流水线输出是 (a) 类型(派生自)WebResponseObject 的 r 响应对象 ,而只有响应的 body(相当于属性值.Content)用-OutFile.

保存

让我们谈谈 Microsoft 文档对 Invoke-WebRequest

的看法

" -OutFile : Specifies the output file for which this cmdlet saves the response body. Enter a path and file name. If you omit the path, the default is the current location. "

此处的关键词是如果省略 路径 它将使用当前路径。

-OutFileString

类型的参数

保存到当前路径的用法是

Invoke-webrequest "http://Test.com/test.pdf" -OutFile "Test.pdf"

否则有一个自定义路径

Invoke-webrequest "http://Test.com/test.pdf" -OutFile "C:\Test\Test.Pdf"