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

directory stack

After enabling Windows Server 2012 R2 DHCP Failover Getting Packet dropped because of Client ID hash mismatch

WMI Repository 4GB limit - Win 2003 Ent Question