Динамическое написание командлетов PowerShell на Python

#.net #python #powershell #ironpython #cmdlets

#.net #python #powershell #ironpython #powershell-командлет

Вопрос:

Я хочу иметь возможность писать командлеты PowerShell с помощью IronPython, и, кроме того, мне нужен один командлет для просмотра среды и добавления командлетов в PowerShell на основе содержимого. Например, чтение каталога и добавление командлета Remove- для каждого имени файла, которое он там видит.

Комментарии:

1. Не могли бы вы более четко указать, что вы хотите добавить? Разве вы не можете сделать это на C #.

2. Я уверен, что могу сделать это на C #. Однако я не хочу этого делать. Я хочу сделать это в IronPython…

3. Вы не должны определять командлеты динамически подобным образом. Особенно для таких вещей, как отдельные файлы.

4. Да, да, я должен. Очевидно, что я не собираюсь на самом деле писать отдельную команду удаления для группы файлов — это был просто пример необходимой мне динамичности.

5. Когда вы уже знаете, как это сделать на C #, преобразовать это в IronPython не составит труда, поскольку у вас есть доступ к той же платформе. Я что-то здесь упускаю?

Ответ №1:

Насколько я знаю, это невозможно сделать!

Проблема здесь в том, что класс IronPython не является классом CLR или совместим с классом CLR. Класс CLR является статическим, а класс IronPython — динамическим, и DLR, насколько я знаю, например, не предоставляет классам IronPython атрибуты .net CLR, которые вам нужны для разработки командлета.

Комментарии:

1. на самом деле способ сделать это скрыт в последнем обновлении: ironpython.svn.codeplex.com/svn/IronPython_Main/Languages /…