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

问题描述 投票:0回答:7

我有一个 PowerShell 函数

Download-File
,它使用
WebClient.DownloadFile
——因此得名。

当我尝试将

.ps1
脚本转换为
.psm1
模块时,PowerShell 警告我“下载”不在 推荐动词列表中。

有什么好的选择吗?

Get-
似乎是为了获取属性,而不是内容(除了
Get-Content
之外,奇怪的是)。
Receive-
对于我的喜好来说似乎有点太被动了(即脚本会阻塞,直到信息被发送)——这不太适合。

想法?

powershell naming
7个回答
11
投票

对我来说,“Get”是最自然的动词。它获得一切,而不仅仅是属性。对于名词,我会使用“WebFile”之类的东西,您可以轻松猜测您得到的内容以及它来自哪里。


8
投票

这行不通:

 Start-Download -Url http://blah/

或者根据同步操作的建议使用

Invoke-Download
Start
用于异步。


0
投票

New-Download
New-WebDownload
New-DownloadFile
呢??


0
投票

也许

Request-TeamCityArtifacts


0
投票

https://learn.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?view=powershell-7.2

下载没有同义词。

Copy
是我发现的最接近的,被记录为未经批准的
Clone
的同义词。


0
投票

我想我在这里找到了更好的答案。我知道这是一个旧线程,但如果您要下载的文件将存储在磁盘上,我不同意使用

Get
动词。我认为
Get
应该保留用于真正的只读操作。可以从互联网上
Get
一个文件并将其存储到内存中,以便稍后可以使用它做一些事情,但是当您将该文件写入磁盘时,它就不再是只读操作了。

我认为

Save
可能是
Download
的最佳通用替代品。

这可能会产生类似的结果:

Save-WebFile -Uri $Uri


0
投票

按照

Invoke-WebRequest
的模式,我会使用
Invoke-ArtifactsDownload
。保持名称紧凑并允许上下文的some 来自模块名称是可以的。

例如,我目前正在开发 SharePoint 集成,并提出这个问题,因为我想命名一个用于下载列表项附件的函数。当

Get-PnPListItemAttachment
没有检索文件名但实际上将文件下载到磁盘时,我感到很困惑,所以
Get
不符合我的期望,正如OP所说。然而,如果不知道库名称,
PnP
的含义并不明显,并且在使用模块时这种歧义是相当常见的。

© www.soinside.com 2019 - 2024. All rights reserved.