我有一个PowerShell功能Sort-VersionLabels.当我将此函数添加到模块时,Import-Module会抱怨:
WARNING: Some imported command names include unapproved verbs which might make
them less discoverable. Use the Verbose parameter for more detail or type
Get-Verb to see the list of approved verbs.
Run Code Online (Sandbox Code Playgroud)
根据此,排序是"保留动词".
什么可能是一个好的(和批准的)替代品?
更新
该函数采用以下形式的版本号数组:<major>.<minor>.<revision>[-<milestone[nr]>].里程碑可以是dev,alpha,beta或stable(以该顺序).因此标准的Sort-Object功能不起作用.
它将排序的数组输出到管道线.
我认为ConvertTo-SortedVersionLabels,虽然有点尴尬,但使用经过批准和非保留的动词,但仍然很清楚.
您还可以将参数排序到不同的函数,例如Get-VersionLabels -Sorted.
你将如何工作取决于你的模块整体以及你是否有这样的功能来修改.目前的帖子还不清楚,但如果您使用更多详细信息进行编辑,我们可能会提供更多建议.
这个问题的核心将产生自以为是的结果.这会产生一个难题,因为您正在寻找当前答案无法解决的特定内容.我知道您正在寻找一种逻辑上适合您的功能的解决方案,同时处于标准动词列表中,这是令人钦佩的.为了继续我先前的评论,我将尝试为所有可能适合您情况的已批准动词说明一个案例.我将经常参考您的问题中链接的批准动词列表,并将使用"AVL"以简化未来.
最终,AVL会被诅咒并做任何你想做的事情.Sort是一个非常好的适合你正在尝试做的.您也可以-DisableNameChecking在导入模块时使用.毕竟这只是一个警告.在我看来,布里亚特主义者的回答也很好.
来自评论的奖金
不是你要求它,但当你说我们必须启用名称检查时,我想到了这一点.纯娱乐!
$reservedVerbs = "ForEach","Format","Group","Sort","Tee"
$approvedVerbList = (Get-Verb).Verb
Get-Command -Module Microsoft.WSMan.Management | ForEach-Object{
If ($approvedVerbList -notcontains ($_.Name -split "-")[0]){
Write-Warning "$($_.Name) does not use an approved verb."
}
If ($reservedVerbs -contains ($_.Name -split "-")[0]){
Write-Warning "$($_.Name) is using a reserved verb."
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
584 次 |
| 最近记录: |