Cmdlet命名约定:用于销毁和/或从资源中删除的动词

时间:2015-04-10 14:24:03

标签: powershell naming-conventions

This问题询问使用哪个动词"删除"使用new-Thing创建的资源。删除是自然接受的动词,因此您拥有remove-Thing cmdlet。

但是我们有几种情况Thing也是一个容器,我们可以在其中添加项目或从中删除项目。目前我们有

    Remove-Thing myThing                   # Destroys myThing
    Remove-ItemFromThing myThing myItem    # Removes myItem from myThing

这太可怕了。有更优雅的方式吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Thing方法通过Remove扩展ScriptMethod容器的成员。所以你可以这样做:

$Thing.Item.Remove()

鉴于没有Remove-MemberAdd-Memeber cmdlet配对,这看起来像是有效的方法。

答案 1 :(得分:0)

想到了一些想法。

首先,容器中的对象不应与容器的名称相同。因此,如果您的容器是Thing,那么您有:

Remove-Thing  #destroys Thing

Thing中的对象不应该命名为Thing。让我们说它们被命名为Part。然后你会:

Remove-Part Thing Part # Removes Part from Thing

这会从Thing容器中删除一个Part。

另一种想到的方法是将一个方法附加到Thing上,删除一个Part。所以你会这样做:

Thing.RemovePart(Part)