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)

第一排

第二排

第三排

$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

我更改了 2nd Invoke-Expression,使其按您想要的方式工作:

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