PowerShell 数组:如何创建和使用它们

变量是任何类型编码(any type of coding)中最基本的数据结构。但是对于大多数目的来说,单个变量是不够的,尤其是在处理更复杂的算法时。

这就是数组的用武之地。无论是 C++ 还是Python,数组都以某种形式存在于每种编程语言中。但是Windows PowerShell呢?PowerShell数组如何工作?你如何使用它们?它们的语法是什么?让我们来了解一下。

PowerShell 阵列 101

简单(Simply)来说,数组就是变量的结构化集合。这个想法是通过将相关变量折叠成一个编号的集合来消除跟踪数十个名称的麻烦。

PowerShell中,您可以通过将 $ 符号添加到变量名称来创建变量。例如:

$prime = 13

该变量可以包含任何数据类型,从数字到字符串。您只需要使用双引号或单引号来指定字符串。

$name = “Levin”

现在要创建一个新数组,只需将多个值分配给同一个变量,用逗号分隔。像这样:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

有些人喜欢将变量显式转换为数组以避免混淆,尽管这不是必需的。为此,请将值放入以 @ 符号开头的括号中。

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

当试图将其他命令的输出放入数组时,这通常会派上用场,因为您无法以正确的格式手动编写它们。

创建一个数组

我们已经看到了创建数组的最常用方法。但视情况而定,还有其他可能更合适的方式。例如,如果要创建一个包含数字范围的数组,可以使用范围运算符:

$digits = (0..9)

这将创建一个包含从零到九的所有十位数字的数组。您还可以初始化一个空数组,以防您以后只想要一个存储值的地方。

$values = @()

多个(Multiple)数组甚至可以相互嵌套,尽管这种用法会很快变得混乱。

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

默认情况下,数组可以存储任何变量类型,可以是数字、字符串或两者的混合。但是,如果您想限制放入其中的值,您可以显式定义一个类型。例如:

[int[]] $numbers = 2,3,4,5

这样,数组只能保存整数。尝试为其分配任何其他类型的值将返回错误。这对于防止专门使用数值的数组出现简单错误很有用,因为将字符串输入到要在计算中使用的变量中会产生问题。

访问数组

到目前为止,我们已经看到了多种创建包含各种类型数据的数组的方法。但是您如何访问这些数据呢?

PowerShell数组使用与其他编程语言相同的格式。每个数组变量都可以通过其索引号访问。例如:

$var = $numbers[5]

这将复制$var变量中$numbers数组的索引 5 中存储的值。请注意,数组索引从 0 开始计数,因此第一项访问为零。

如果我们要输出这个,例如:

“$days[2]”

我们将得到星期三,而不是星期二。

您也可以使用相同的方法来修改这些值。例如,以下命令会将数组的第二个元素更改为零:

$numbers[1] = 0

您还可以向现有数组添加更多元素,而不是像算术表达式一样添加它们来更改当前条目的值。

$names += “Johny”

此方法也可用于一次添加多个条目,甚至是整个数组。

$names += “Charlie, Liam, Teresa”

$names += $surnames

逗号分隔的方法也适用于访问多个数组元素。例如,输入 this 会将$days的前五个元素存储在$weekdays中。

$weekdays = $days[0,1,2,3,4]

遍历数组

手动访问数组的特定元素很好,但如果您想对数组的全部内容执行操作,它可能会变得乏味。更优雅的方法是使用 For 循环。

for 循环可以系统地遍历数组的所有元素,根据指令处理每个值。这是构建这样一个循环的方法:

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

array.Length 函数返回数组的大小,基本上就是其中元素的数量。这可以插入到 For 循环的测试表达式参数中,以全面迭代所有元素。

Foreach循环和Foreach -object 循环可以使用更精简的PowerShell脚本执行相同的操作。

Foreach ($day in $days){
    $day}

这样可以节省您确定数组大小的工作,而将详细信息留给PowerShell处理。

什么时候应该使用PowerShell 数组(PowerShell Arrays)

复杂脚本中最大的错误来源是错误引用的变量。这是因为存在大量唯一命名的变量,这使得很难记住它们的用途。

解决此问题的最简单方法是广泛使用数组。所有以某种方式相关的变量都可以分配给单个数组并通过它们的索引号访问。

Microsoft PowerShell 的(Microsoft PowerShell’s)主要用例是自动化,而阵列在其中发挥着关键作用。PowerShell cmdlet返回的对象可以存储到数组中并进行迭代。这允许自动执行顺序任务,大大简化了系统管理。



About the author

我是一名 Windows 专家,在软件行业工作了 10 多年。我有使用 Microsoft Windows 和 Apple Macintosh 系统的经验。我的技能包括:窗口管理、计算机硬件和声音、应用程序开发等等。我是一位经验丰富的顾问,可以帮助您充分利用 Windows 系统。



Related posts