get-or-create的适当PowerShell动词/模式是什么?

时间:2014-10-20 21:59:04

标签: powershell design-patterns naming-conventions

我想创建一些创建项目的PowerShell函数,或者返回现有项目(如果已存在)。例如。数据库登录,文件夹等

这是一个适当的动词? Approved Verbs中没有Ensure,我不确定还有什么适用。我考虑过New-X -IfExists ReturnExisting,但我更愿意遵循一个共同的模式,而不是发明自己的模式。

是否有任何内置的PowerShell命令行开关可以获取或创建,以便我可以复制该方法?

4 个答案:

答案 0 :(得分:3)

根据approved verb listing

New vs. Set
New动词用于创建新资源。 Set动词用于修改现有资源,可选择创建资源(如果不存在),例如Set-Variable cmdlet。

答案 1 :(得分:1)

使用Get-Verb查看所有已批准动词的列表。但是对于你的情况,我可能会将函数分解为两个函数。也就是说,如果您关心遵循PowerShell习语。使用“新建”创建一个“获取”来获取现有的。 OTOH,如果这只适合你,可以随意使用。 : - )

答案 2 :(得分:0)

对于一个文件夹,我会假设New,因为你正在创建一个资源,你可以编程你的函数,如果它已经存在,你返回对象而不是重新创建它。 / p>

我有一个名为New-Box的函数,一个在我们的交换环境中创建新邮箱的函数,如果邮箱已经存在,我的函数返回细节而不是尝试创建一个新邮箱。

" New动词用于创建新资源。 "

答案 3 :(得分:0)

你可能很容易对此挑剔,但我觉得 Resolve 可能会满足使用或创建的需要。虽然它不适合其唯一的其他cmdlet Resolve-Path,但您可能会认为您正在尝试最终处理(问题,不确定性等问题);解决;解决项目。这绝对是个人选择的问题,就像基思希尔所说的那样:每个人都有自己的选择。

source