Powershell函数返回值未存储在变量中

时间:2017-02-08 10:59:42

标签: powershell

我无法弄清楚如何在PowerShell中编写一个简单的函数。我是一名C#开发人员,所以可能还有一些我不知道的令人费解的PowerShell结构。

这是我想要做的事情:

function ToBase64([string] $input) {
    $bytes = [System.Text.Encoding]::UTF8.GetBytes($input)
    return [System.Convert]::ToBase64String($bytes)
}

$encoded = ToBase64 -input "Hello World"

Write-Host "Encoded: $encoded"

我希望这个输出:

Encoded: SGVsbG8gV29ybGQ=

但我只是得到一个空字符串:

Encoded:

PowerShell本身没有报告任何错误。

我这样调用这个脚本:

powershell -ExecutionPolicy Unrestricted -File "base64.ps1"

我完全迷失在这里。我试图谷歌搜索这个问题,但我发现的一切都表明这应该有效。

1 个答案:

答案 0 :(得分:0)

试试这个。

function ToBase64{
    $bytes = [System.Text.Encoding]::UTF8.GetBytes($args[0])
    return [System.Convert]::ToBase64String($bytes)
}

$encoded = ToBase64 -input "Hello World"

Write-Host "Encoded: $encoded"