1. ホーム
  2. powershell

[解決済み] powershell で $args 配列にアクセスする

2022-03-02 18:34:51

質問

私は、以下のようなテスト用のpowershell V2スクリプトを持っています。

    function test_args()
    {
      Write-Host "here's arg 0: $args[0]"
      Write-Host "here's arg 1: $args[1]"
    }


    test_args

powershellのコマンドプロンプトから呼び出すと、画面にこのように表示されます。

here's arg[0]: [0]

here's arg[1]: [1]

私が望んでいたものとはちょっと違いますが。 どうやら$args[0]と$args[1]をスクリプト内の新しい変数にコピーしてからでないと使えないようです? そうすれば、うまくアクセスできるのですが。

私のコードでインデックスされた$argsにアクセスする方法はありますか? 中括弧で囲んでいろいろやってみましたが、うまくいきません。

いずれは名前付きパラメータに移行するつもりですが、私が取り組んでいるスクリプト(このデモのものではない)は、バッチファイルをそのまま移植したものなんです。

どのように解決するのですか?

代わりにこちらをお試しください。

function test_args()
{
  Write-Host "here's arg 0: $($args[0])"
  Write-Host "here's arg 1: $($args[1])"
}

test_args foo bar

であることに注意してください。 $args であって $arg . また、PowerShellの変数を文字列で使用する場合、PowerShellは変数の値のみを代入します。 のような式を直接使用することはできません。 $args[0] . しかし、この式は $() 二重引用符で囲まれた文字列内の部分式グループによって、PowerShellは式を評価し、その結果を文字列に変換することができます。