0
PowerShellで簡単な関数を書く方法を理解できません。私はC#の開発者ですので、私が気づいていないPowerShellの構想があります。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"
私は完全にここに迷ってしまいました。私はこの問題についてグーグルで試してみましたが、私が見つけたものはすべてこれがうまくいくはずです。
'-input'を削除しても機能しますが、私のアプローチがうまくいかない理由を知りたいと思います。 –
@SebastianKrysmanski '$ input'は[自動変数](https://msdn.microsoft.com/en-us/powershell/reference/3.0/microsoft.powershell.core/about/about_automatic_variables)です。私はあなたの複製とマークした質問への回答を見てください。 –