将字符串传入和传出函数

时间:2017-05-24 17:21:26

标签: function powershell scope

我是Powershell的新手,但我用Java和其他语言编程。

我正在尝试将字符串传递给函数,然后让该函数返回字符串。下面是我试图运行的简单代码:

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

    $out = $input

    return $out
}

$a = test hello world
Write-Host $a

我希望这会传递字符串hello world,然后将字符串返回到要打印的变量$a中。而是我的控制台返回:

PS P:\test> .\funcpass.ps1

PS P:\test> 

我遇到了某种范围错误吗?任何帮助将不胜感激。我不确定版本号是否有帮助,但这里是:

PS P:\test> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14393  1198

1 个答案:

答案 0 :(得分:6)

$input参数为保留,因此您必须更改其名称。此外,如果您只想将一个字符串传递给该函数,则必须用引号将其括起来:

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

    $out = $inputValue

    return $out
}

$a = Run-Test "hello world"

Write-Host $a

仅供参考return关键字是可选的,但是当其他语言使用return来表示正在从函数返回某些内容时,它会使您的意图更加清晰。

将返回函数内部管道上发送的所有内容(如Write-Output