我正在实现一个自定义PowerShell提供程序。我现在正在研究 remove-item cmdlet 实现。
RemoveItem 方法具有以下签名:
protected override void RemoveItem(string path, bool recurse)
当我键入时:Remove-Item .\Myobject -recurse
PowerShell 基础结构为我提供了 RemoveItem 方法true
的参数中的值。recurse
但是,当我输入: Remove-Item .\MyObject' 我得到一个问题:
MyObject 中的项目具有子项,并且未指定 Recurse 参数。如果您继续,所有子项都将与该项目一起被删除。你确定你要继续吗?[Y] 是 [A] 全部是 [N] 否 [L] 全部否 [S] 暂停 [?] 帮助(默认为“Y”):
我想这个问题是由 PowerShell 基础设施向我提出的。这很好,因为我要删除的对象是一个容器。如果我对上述问题回答“是”,则 PowerShell 基础结构不会设置递归参数。事实上,当我的RemoveItem
方法被调用时它是错误的。我会排除参数为真,因为我对这个问题的回答是肯定的。
我的问题是:
为什么 PowerShell 没有将 bool 递归参数设置为正确的值?
我是否需要以其他方式获得价值(问题的答案)?如何?
如果以上是不可能的,有没有办法压制这个问题?