# encoding: ascii
# api: powershell
# title: AS function
# description: AS function. simple wrapper for generating the hashtables that select-object uses
# version: 0.1
# type: function
# author: karl prosser
# license: CC0
# function: new-selectexpression
# x-poshcode-id: 1019
# x-archived: 2012-04-24T13:15:42
# x-published: 2009-04-13T14:59:00
#
#
#region setup AS function
function new-selectexpression
{
if ($args.count -eq 1) { $theargs = $args[0] } else {$theargs= $args }
if ($theargs.count -gt 1)
{
for($loop=0;$loop -lt ($theargs.count-1);$loop+=2)
{
@{Name=$theargs[$loop];Expression=$theargs[$loop+1]}
}
}
if (!($theargs.count % 2) -eq 0) {@{Name=$input[$input.count-1];Expression= invoke-Expression "{}" } }
}
set-Alias as new-selectexpression
#endregion
#Examples
#Select (as theprocess ,name ,
# "CPU" , {$_.privatememorysize/ 1KB} ,
# "memory KB" , {$_.privatememorysize/ 1KB} ,
# "peak KB", {$_.peakworkingset /1KB} ) -first 2