关于如何使用PowerShell下载文件存在一些问题。我正在使用PowerShell Core,因此无法再使用我喜欢的方法:Start-BitsTransfer
。
我看到这个建议:
Invoke-WebRequest URL -OutFile c:\file.ext
但是,似乎不太理想,必须提供文件名。PowerShell /可以iwr
根据URL路径或响应头来猜测文件名吗?
我Invoke-WebRequest URL
独自尝试过,但这根本不存储文件。通过阅读文档,看来可能没有其他选择,对吗?PowerShell中是否有其他单行使用其原始文件名下载文件?
没有的开关Invoke-WebRequest
。但是,以下代码可以在一行中从文件路径中提取名称:
Invoke-WebRequest $URL -OutFile "C:\$(Split-Path -Leaf $URL)"
Split-Path
将使用一个路径,并使用-Parent
参数将完整路径返回到父容器,或者使用参数将文件或目录的名称返回末尾-Leaf
。
但是,这仅在文件名是URL的一部分时才有效。例如,如果您有类似的内容http://server.domain.tld/download.php?id=12345
,则输出文件最终将是download.php?id=12345
。这不是一个班轮,但@Theo在他的评论中分享了一个答案,该答案定义了一个获取重定向URL的函数。然后Split-Path -Leaf
,您可以使用该重定向的URL来获取所需的文件名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句