我在 Powershell 中使用 Invoke-WebRequest 下载文件而不使用-OutFile
参数,并且从这里的文档中,该文件应该已经在我所在的目录中结束了。但是,什么都没有。响应正常,没有显示错误。
该文件可能发生了什么?我是否误解了 Invoke-WebRequest 在没有 Out 参数的情况下应该如何工作?
谢谢!
注意:我知道我可以使用参数轻松下载文件,但它非常大,我想确保它不会在我不需要的地方阻塞磁盘空间
我在 Powershell 中使用 Invoke-WebRequest 下载文件而不使用-OutFile
参数,并且从这里的文档中,该文件应该已经在我所在的目录中结束了。但是,什么都没有。响应正常,没有显示错误。
该文件可能发生了什么?我是否误解了 Invoke-WebRequest 在没有 Out 参数的情况下应该如何工作?
谢谢!
注意:我知道我可以使用参数轻松下载文件,但它非常大,我想确保它不会在我不需要的地方阻塞磁盘空间
从链接的文档:
默认情况下,
Invoke-WebRequest
将结果返回到管道。
也就是说,在-OutFile
没有文件的情况下被创建。
(如果您不捕获或重定向输出,它将打印到主机(控制台)。)
正如techguy1029在评论中指出的那样,当前目录仅在您使用但仅-OutFile
指定文件名而不是路径时才起作用。
顺便说一句:To-pipeline 输出是(a) 类型的响应对象(派生自)WebResponseObject
,而只有响应正文的值(相当于属性 value .Content
)与-OutFile
.
让我们谈谈 Microsoft 文档对Invoke-WebRequest 的说明
" -OutFile : 指定此 cmdlet 为其保存响应正文的输出文件。输入路径和文件名。如果省略路径,则默认为当前位置。"
这里的关键字是如果省略路径,它将使用当前路径。
-OutFile是String类型的参数
保存到当前路径的用法是
Invoke-webrequest "http://Test.com/test.pdf" -OutFile "Test.pdf"
否则有一个自定义路径
Invoke-webrequest "http://Test.com/test.pdf" -OutFile "C:\Test\Test.Pdf"