Я реализую собственный PowerShell. Теперь я работаю над реализацией cmdlet remove-item.
Метод RemoveItem имеет следующую подпись:
protected override void RemoveItem(string path, bool recurse)
Когда я печатаю: Remove-Item .\Myobject -recurse
инфраструктура PowerShell предоставляет мне значение true
в параметре recurse
метода RemoveItem.
Однако, когда я набираю: Remove-Item.\MyObject 'У меня вопрос:
Элемент MyObject имеет дочерние элементы и параметр Recurse не указан. Если вы продолжите, все дети будут удалены вместе с предметом. Вы уверены что хотите продолжить? [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию "Y" ):
Я думаю, этот вопрос представлен моей инфраструктурой PowerShell. Это прекрасно, потому что объект, который я хочу удалить, представляет собой контейнер. Если я отвечу "да" на указанный выше вопрос, инфраструктура PowerShell не устанавливает параметр recurse. На самом деле это неверно, когда вызывается мой метод RemoveItem
. Я бы хотел, чтобы параметр был истинным, потому что я ответил да на вопрос.
Мои вопросы:
-
Почему PowerShell не устанавливает параметр рекурсии bool в правильное значение?
-
Нужно ли мне получить значение (ответ на вопрос) каким-то другим способом? Как?
-
Если выше невозможно, есть ли способ подавить вопрос?