我无法输出变量中变量名的值。 我有一个数组,其中包含其他几个数组的名称:
>$arrayx1
array00
array01
array02
array03
array10
array11
array12
array13
每个数组都有自己的值,我想将该值输出到循环中的文件中。我得到了循环和其他所有工作,除了它输出数组的名称而不是数组值。
$outnr1 = 0
$outnr2 = 0
$null | out-file $path
foreach ($nr3 in $arrayx1) {
$output = $arrayx1[$outnr2]
echo "$($output)" | out-file $path -encoding Unicode -append
$outnr2 = $outnr2 + 1
if ($outnr2 -gt 3) {
$outnr1 = $outnr1 + 1
}
}
该文件最终看起来像$ arrayx1
答案 0 :(得分:1)
PowerShell中不支持变量(如PHP中的$$Name
)。
相反,作为mentioned in the comments,您应该使用Get-Variable
来检索名称为的变量的值:
foreach($varName in $arrayx1)
{
$var = Get-Variable -Name $varName -ValueOnly
$var | Out-File $path -Encoding Unicode -Append
}
我并不完全清楚您在原始示例中使用$outnr1
和$outnr2
变量尝试完成的操作,但是如果您想将输出限制为前3项在$arrayx1
中,使用Select-Object -First
:
foreach($varName in $arrayx1 | Select-Object -First 3)
{
$var = Get-Variable -Name $varName -ValueOnly
$var | Out-File $path -Encoding Unicode -Append
}
或范围运算符:
foreach($varName in $arrayx1[0..2])
{
$var = Get-Variable -Name $varName -ValueOnly
$var | Out-File $path -Encoding Unicode -Append
}