This问题询问使用哪个动词"删除"使用new-Thing
创建的资源。删除是自然接受的动词,因此您拥有remove-Thing
cmdlet。
但是我们有几种情况Thing
也是一个容器,我们可以在其中添加项目或从中删除项目。目前我们有
Remove-Thing myThing # Destroys myThing
Remove-ItemFromThing myThing myItem # Removes myItem from myThing
这太可怕了。有更优雅的方式吗?
答案 0 :(得分:1)
您可以使用Thing
方法通过Remove
扩展ScriptMethod
容器的成员。所以你可以这样做:
$Thing.Item.Remove()
鉴于没有Remove-Member
与Add-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)