我想要一个数组,并从脚本中的不同函数向其中添加元素。下面的示例说明了我可能会误解有关范围的问题。我目前的理解是,如果在函数外部定义了一个数组,然后在函数内部添加了元素,则这些元素应该在函数外部可用。
Function ListRunningServices
{
$services+= Get-Service | ?{$_.Status -eq "Running"} | sort Name | select Name;
}
$services = @();
ListRunningServices;
$services;
我在这里想念什么?也许我的风格是完全错误的。
最佳答案
功能块内的$services
的作用域为该函数。您可以改为执行以下操作:
Function ListRunningServices {
Get-Service | ?{$_.Status -eq "Running"} | sort Name | select Name
}
$services = ListRunningServices
$services
另外,您可以显式使用
global:
更改范围:Function ListRunningServices {
$global:services = Get-Service | ?{$_.Status -eq "Running"} | sort Name | select Name
}
$services = @()
ListRunningServices
$services
关于arrays - Powershell阵列范围;为什么我的数组为空?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20520980/