<div><a href="http://hagenlocher.org/software/PythonCmdlet.zip" target="_blank">http://hagenlocher.org/software/PythonCmdlet.zip</a></div>
<div>&nbsp;</div>
<div>
<div>This is a sample project that shows one approach to creating a PowerShell cmdlet using IronPython.&nbsp; The cmdlet object has to derive from System.Management.Automation.Cmdlet, it needs to override particular virtual functions and it needs appropriate attributes on the class and on the properties representing the cmdlet&#39;s parameters.</div>

<div>&nbsp;</div>
<div>Originally, I was hoping to use the project I&#39;m working on[1] to automatically generate an appropriate wrapper from the Python class.&nbsp; Unfortunately, I haven&#39;t yet been able to think of a sufficiently clever scheme to&nbsp;handle the scenario where the wrapper needs to be derived from a specific base class, and the Python object can transparently access the members of that same base class despite not having the same object identity.</div>

<div>&nbsp;</div>
<div>Here, I&#39;ve taken the approach of passing the actual Cmdlet-derived class as a parameter to the constructor of the Python class.&nbsp; The Python script itself is stored as a resource in the cmdlet.&nbsp; The cmdlet implements a &quot;browse-matches&quot; command that is designed to have MatchInfo objects pipelined into it.&nbsp; Usage would be something like this:</div>

<div>&nbsp;</div>
<div><font face="courier new,monospace">select-string NewTypeMaker | browse-matches</font></div>
<div>&nbsp;</div>
<div>The results are displayed as simple strings in a listbox on a modal form.</div>
<div>&nbsp;</div>
<div>Information on installing and using a PowerShell cmdlet can be found (among other places) at</div>
<div><a href="http://blog.cumps.be/using-powershell-writing-and-debugging-cmdlets/" target="_blank">http://blog.cumps.be/using-powershell-writing-and-debugging-cmdlets/</a></div>
<div>&nbsp;</div>
<div>
<div>This project is based on IronPython 2.0B1.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>1: <a href="http://www.codeplex.com/coils" target="_blank">http://www.codeplex.com/coils</a>&nbsp;-- not forgotten, but currently held up by an unresolved &quot;strongly-named assembly is required&quot; that I&#39;m trying to work around.</div>

<div>&nbsp;</div></div>
<div></div>
<div></div>
<div>-- </div>
<div>Curt Hagenlocher </div>
<div><a href="mailto:curt@hagenlocher.org" target="_blank">curt@hagenlocher.org</a></div>