替代“下载”作为PowerShell动词?

camsedfj  于 12个月前  发布在  Shell
关注(0)|答案(7)|浏览(154)

我有一个PowerShell函数Download-File,它使用WebClient.DownloadFile--因此得名。
当我尝试将.ps1脚本转换为.psm1模块时,PowerShell警告我“下载”不在recommended verbs列表中。
有什么好的选择吗?Get-似乎是关于获取属性,而不是内容(除了Get-Content,奇怪的是)。Receive-似乎有点太被动了,我不喜欢(即脚本阻塞,直到信息发送)--这不太合适。
想法?

iovurdzv

iovurdzv1#

对我来说,“Get”是最自然的动词。它获取一切,而不仅仅是属性。对于名词,我会使用“WebFile”,你可以很容易地猜到你得到了什么,它来自哪里。

i86rm4rw

i86rm4rw2#

这样不行吗:

Start-Download -Url http://blah/

字符串
或者按照同步操作的建议使用Invoke-DownloadStart用于异步操作。

a5g8bdjr

a5g8bdjr3#

我想我在这里找到了一个更好的答案。我知道这是一个旧的线程,但我不同意使用Get动词,如果你下载的文件将被存储在你的磁盘上。我认为Get应该被保留用于真正的只读操作。从互联网上Get一个文件并将其存储到内存中是可以的,这样你以后就可以对它做一些事情。但是当你把文件写到磁盘上的那一刻,它就不再是只读操作了。
我认为Save可能是Download的最佳通用替代品。
这可能会产生类似于:Save-WebFile -Uri $Uri

bzzcjhmw

bzzcjhmw4#

完整的列表在这里:

下载没有 * 规定 * 的同义词。Copy是我找到的最接近的,被记录为未经批准的Clone的同义词。
还有ReadSaveSync和一大堆其他的。

fbcarpbf

fbcarpbf5#

什么是New-DownloadNew-WebDownloadNew-DownloadFile

bhmjp9jg

bhmjp9jg6#

也许Request-TeamCityArtifacts

plupiseo

plupiseo7#

按照Invoke-WebRequest的模式,我将使用Invoke-ArtifactsDownload。保持名称紧凑并允许 * 一些 * 上下文来自模块名称是可以的。
例如,我目前正在进行SharePoint集成,并且遇到了这个问题,因为我想命名一个用于下载列表项附件的函数。当Get-PnPListItemAttachment没有检索文件名但实际上下载文件到磁盘时,我感到困惑,所以Get不符合我的期望,正如OP所说。然而,如果不知道库名称,PnP的含义就不明显,而且在使用模块时,这种模糊性相当常见。

相关问题