次のようなテスト用の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で式を評価し、結果を文字列に変換できます。