4

我在 Powershell 中使用 Invoke-WebRequest 下载文件而不使用-OutFile参数,并且从这里的文档中,该文件应该已经在我所在的目录中结束了。但是,什么都没有。响应正常,没有显示错误。

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

谢谢!

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

4

2 回答 2

7

链接的文档

默认情况下,Invoke-WebRequest将结果返回到管道。

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

正如techguy1029在评论中指出的那样,当前目录仅在您使用但仅
-OutFile指定文件而不是路径时才起作用。


顺便说一句:To-pipeline 输出是(a) 类型的响应对象(派生自)WebResponseObject,而只有响应正文的值(相当于属性 value .Content)与-OutFile.

于 2019-09-12T17:56:00.010 回答
3

让我们谈谈 Microsoft 文档对Invoke-WebRequest 的说明

" -OutFile : 指定此 cmdlet 为其保存响应正文的输出文件。输入路径和文件名。如果省略路径,则默认为当前位置。"

这里的关键字是如果省略路径,它将使用当前路径。

-OutFileString类型的参数

保存到当前路径的用法是

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

否则有一个自定义路径

Invoke-webrequest "http://Test.com/test.pdf" -OutFile "C:\Test\Test.Pdf"
于 2019-09-12T18:00:15.490 回答