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