1.17.9. fejezet, Funkciók

Egyszerű példa a funkciókra

function hello { "Hello there $args, how are you?" }
$ofs="," 
hello Bob Alice Ted Caro
#Hello there Bob,Alice,Ted,Carol, how are you?
function nadd ([int] $x, [int] $y) {$x + $y} 

Funkció és overloading

function a ([int] $b) { } 
function a ([string] $b) { } 

Inicializálás default értékekkel

function add ($x=1, $y=2) { $x + $y } 
add 5 
#7
add 5 5
#10

Példa default dátum értékre

function dow ([datetime] $d = $(Get-Date)) {
   $d.dayofweek
}
dow
#Tuesday
dow 'oct 10, 2017'
#Tuesday

Kód a .\functions.ps1 fájlban:

function test ($VALUE) {
 if ($VALUE) {
     Write-Host -ForegroundColor GREEN "TRUE"
 } else {
     Write-Host -ForegroundColor RED   "FALSE"
 }
}

Most teszteljünk néhány értéket:

. .\functions.ps1
 
test "SHORT STRING"
#True
test "True"
#True
test FALSE
#True
test $False
#False
test ""
#False
test 0
#False
test 0.1
#True
$x=("                    " -replace " ")
test $x
#False

Kapcsoló paraméterek

function get-soup ( [switch] $please, [string] $soup= 'chicken noodle') {    
    if ($please) {
            "Here's your $soup soup"   
    } else {
             if ($PSBoundParameters['soup']) {
                "No "+$PSBoundParameters['soup']+" soup for you!"
             } else {
                "No soup for you!"
             }
    }
}
 
get-soup
#No soup for you!
get-soup -please
#Here's your chicken noodle soup
get-soup -please tomato 
#Here's your tomato soup
 
get-soup -please: $true
#Here's your chicken noodle soup
get-soup -please: $true tomato
#Here's your tomato soup
get-soup -please: $false "potato"
#No potato soup for you!