为了在函数中使用数组,我想学习如何通过变量中定义的名称来引用它们。这就是为什么在这里以一种相当复杂的方式完成非常简单的事情......
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])
真
表示未正确添加包含行的数组。
答案 0 :(得分:0)
我改变了第二个Invoke-Expression,这使它按照你想要的方式工作:
Invoke-Expression "`$$($arraysecond + $arrayname) += `$(Get-Variable -Name $($arrayfirst + $arrayname) -ValueOnly)"