Invoking script file from a custom cmdlet?


i writing custom cmdlet. in processrecord() method of cmdlet, want to execute an external script file. how achieve that?

and also, script file expects have parameters passed (it declaring params() tag @ top). how pass parameters, known @ runtime, script file when execute it?

any pointer appreciated.

what asking easy.  let's have script called script1.ps1 in current directory.  the contents this:

 

"these args:" $args

 

now have function takes argument, , calls script args of own in process block:

 

function doit {   param(     [parameter(mandatory=$true,position=0)]     [string]$param   )   process {     & .\script1.ps1 $param, "blah"   } }  doit "done"

 

now, that's easy - technique find more useful general way create large sets of custom code.  this may not want now, it's know can it:

function doit {   param(     [parameter(mandatory=$true,position=0)]     [string]$param   )   $scriptsegments = @()   $scriptsegments += {     $var1 = "blah"     $var1   }   $scriptsegments += $executioncontext.invokecommand.newscriptblock("get-childitem '$param'")      $finalscript = ""   $scriptsegments |foreach {       $finalscript += $_.tostring() + "`n"   }   $finalscript = $executioncontext.invokecommand.newscriptblock($finalscript)   & $finalscript } doit $pwd

i blogged in crazy stream of conscious article last winter.  you can check out here if want see rabbit hole went down learn way make dynamic code in powershell:

http://powertoe.wordpress.com/2010/02/10/dynamic-code-in-powershell/


write-host ((0..56)|%{if (($_+1)%3 -eq 0){[char][int]("116111101110117102102064103109097105108046099111109"[($_-2)..$_] -join "")}}) -separator ""


Windows Server  >  Windows PowerShell



Comments

Popular posts from this blog

some help on Event 540

WMI Repository 4GB limit - Win 2003 Ent Question

Event ID 1302 (error 1307) DFS replication service encountered an error while writing to the debug log file