Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing string in and back out of function

I am really new to Powershell but I have programmed in Java and other languages.

I am trying to pass a string to a function and then have that function return the string. Below is the simple code I am trying to run:

#funcpass.ps1
function test {
    Param([string]$input)

    $out = $input

    return $out
}

$a = test hello world
Write-Host $a

I expect this to pass the string hello world then return the string into the variable $a to be printed. Instead my console returns this:

PS P:\test> .\funcpass.ps1

PS P:\test> 

Is there some kind of scope error that I am encountering? Any help would be greatly appreciated. I am not sure if the version number helps, but here it is:

PS P:\test> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14393  1198
like image 581
Glen Lynch Avatar asked Nov 26 '25 03:11

Glen Lynch


1 Answers

The $input parameter is reserved, so you have to change its name. Moreover, if you want to pass only one string to the function you have to enclose it with quotes:

function Run-Test {
    Param([string]$inputValue)

    $out = $inputValue

    return $out
}

$a = Run-Test "hello world"

Write-Host $a

FYI the return keyword is optional but it makes your intentions more clear as other language use return to indicate that something is being returned from the function. Everything sent on the pipeline inside the function (like Write-Output) will be returned.

like image 183
sodawillow Avatar answered Nov 28 '25 15:11

sodawillow



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!