0

関数で配列を使用するために、変数で定義された名前を使用してそれらを参照する方法を学びたいと思います。これが、ここで非常に単純なことがかなり複雑な方法で行われる理由です...

Remove-Variable array*
Remove-Variable first*
Remove-Variable second*
$arrayname='name'

$arrayfirst='firstarray'
Set-Variable -Name $($arrayfirst + $arrayname) -Value $(cat textfile.txt)
$(Get-Variable -Name $($arrayfirst + $arrayname) -ValueOnly) -is [array]

真実

$(Get-Variable -Name $($arrayfirst + $arrayname) -ValueOnly)

最初の行

二列目

3行目

$arraysecond='secondarray'
Invoke-Expression "`$$($arraysecond + $arrayname)= @()"
$(Get-Variable -Name $($arraysecond + $arrayname) -ValueOnly) -is [array]

真実

Invoke-Expression "$($arraysecond + $arrayname)+= ,$(Get-Variable -Name $($arrayfirst + $arrayname) -ValueOnly)"


$null -eq $(Get-Variable -Name $($arraysecond + $arrayname) -ValueOnly)

間違い

しかし

 $null -eq $($(gv $($arraysecond + $arrayname) -ValueOnly)[0])

真実

これは、行を含む配列が正しく追加されなかったことを意味します。

4

1 に答える 1

0

2番目の Invoke-Expression を変更しました。これにより、希望どおりに機能します。

Invoke-Expression "`$$($arraysecond + $arrayname) += `$(Get-Variable -Name $($arrayfirst + $arrayname) -ValueOnly)"
于 2012-12-24T06:26:32.507 に答える