使用Python动态编写PowerShell CmdLets

11

我想要使用IronPython编写PowerShell CmdLets,而且我还需要一个CmdLet来查看环境并根据内容向PowerShell添加CmdLets。例如,读取一个目录,并为其看到的每个文件名添加一个Remove- CmdLet。


你能更清楚地说明你想添加什么吗?难道你不能用C#来做吗? - JPBlanc
1
我相信我可以用C#做到这一点。但我不想这样做。我想用IronPython来实现... - moshez
1
你不应该像那样动态定义 cmdlets,特别是对于像单个文件这样的东西。 - JasonMArcher
3
好的,我会尽力进行翻译并使其更加通俗易懂,但不会改变原文的含义。下面是需要翻译的内容:是的,是的,我应该这么做。显然,我不会为一堆文件编写单独的删除命令——那只是我所需动态性的一个例子。 - moshez
当你已经知道如何在C#中完成它时,将其转换为IronPython应该是没有问题的,因为你可以访问相同的框架。我有什么遗漏吗? - Niklas B.
问题在于IronPython类不是CLR类,也与CLR类不兼容。CLR类是静态的,而IronPython类是动态的。据我所知,DLR并没有提供IronPython类具有.NET CLR属性的功能,而这是CMDLET开发所必需的。 - CosmosKey
1个回答

3
据我所知,这是不可能的!
问题在于IronPython类不是CLR类或与CLR类兼容。CLR类是静态的,而IronPython类是动态的。据我所知,DLR不能为IronPython类提供.NET CLR属性,而这是CMDLET开发所需的。

实际上,完成此操作的方法被埋藏在最新的更新中:https://ironpython.svn.codeplex.com/svn/IronPython_Main/Languages/IronPython/Samples/ClrType/clrtype.py - Kyle Roux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接