当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell ForEach 循环 [带有示例]

作者:精品下载站 日期:2024-12-14 05:15:07 浏览:13 分类:玩电脑

PowerShell ForEach 循环 [带有示例]


要成为 PowerShell 专家,您应该知道如何使用 foreach 循环。我将详细解释 PowerShell foreach 循环中的嵌套 foreach 循环和错误处理。

PowerShell Foreach 循环遍历数组、cmdlet 或脚本文件。它通过处理集合中的每个项目来简化重复性任务。

现在,让我们了解它的语法和 foreach 循环的一些示例。

PowerShell 中的 ForeEch 循环是什么

PowerShell 中的 ForEach 循环用于迭代项目集合(例如数组或列表),并对每个项目执行操作。这个循环将帮助开发人员自动执行重复性任务。

例如,如果您有一个文件名列表,PowerShell Foreach 循环可以处理每个文件,对每个文件执行相同的操作。

ForEach 循环的语法

以下是 PowerShell foreach 循环的语法。

foreach ($item in $collection) {
    # Perform actions with $item
}

这里,$collection是正在处理的数组或列表,$item表示每次迭代中的当前元素。大括号内的脚本块定义对每个元素执行的操作。

PowerShell foreach 循环示例

现在,让我们看一下在 PowerShell 中使用 foreach 循环的几个示例。

示例 1:循环遍历数组元素

现在,假设您有一个如下所示的 PowerShell 数组:

$numbers = @(1, 2, 3, 4, 5)
or
$numbers = 1..5

现在,您可以使用下面的 PowerShell 脚本来循环访问上面的数组。

foreach ($number in $numbers) {
    Write-Output $number
}

这是完整的脚本。

$numbers = 1..5
foreach ($number in $numbers) {
    Write-Output $number
}

在此脚本中,ForEach 循环遍历数组 $numbers,其中包含数字 1 到 5。对于每个数字,它都会将数字输出到控制台。

我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:

[玩转系统] PowerShell ForEach 循环 [带有示例]

阅读 PowerShell 中循环内的连接字符串

示例 2:使用 ForEach 循环循环文件夹中的文件

现在,让我向您展示一个示例,我们可以使用 PowerShell ForEach 循环遍历文件夹中的所有文件。

$items = Get-ChildItem -Path "C:\MyFolder"

ForEach ($item in $items) {
    Write-Output $item.Name
}

这里,Get-ChildItem cmdlet 检索 C:\MyFolder 目录中的所有项目并将它们存储在 $items 变量中。然后,ForEach 循环会迭代 $items 集合中的每个项目并输出每个项目的名称。

下面的屏幕截图显示,在我使用 VS code 执行脚本后,它显示了文件夹中的所有文件名。

[玩转系统] PowerShell ForEach 循环 [带有示例]

示例 3:操作 ForEach 循环内的对象

foreach 循环内,可以使用各种技术来操作对象。例如,向对象添加属性或修改现有对象。

这是一个例子。

$processes = Get-Process
foreach ($process in $processes) {
    $process | Add-Member -NotePropertyName "IsA" -NotePropertyValue ($process.Name -like "A*")
}

在 PowerShell 中读取 While 循环

PowerShell 中 Foreach 循环的控制流

让我向您展示 foreach 循环中的一些高级内容。例如,我将向您展示如何在PowerShell中的foreach循环中使用流程控制语句,例如条件语句、Break和Continue语句等。

1. 使用 If 语句实现条件

foreach 循环中使用 If 语句允许您仅在满足特定条件时运行特定代码。通过检查循环内的条件,您可以决定对每个项目执行哪些操作。例如:

foreach ($item in $items) {
    if ($item -eq "target") {
        Write-Output "Found the target!"
    }
}

此循环检查 $item 是否等于“target”,然后输出一条消息。 If 语句提供了使用 elseifelse 包含多个条件的灵活性。

2. 在 ForEach 循环中使用 Break

break 语句用于提前退出 ForEach 循环。当满足特定条件并且您不再需要继续迭代其余项目时,这可能很有用。

以下是示例和完整的 PowerShell 脚本。

$numbers = 1..10

ForEach ($number in $numbers) {
    if ($number -eq 5) {
        break
    }
    Write-Output "Number: $number"
}

该脚本将输出:

Number: 1
Number: 2
Number: 3
Number: 4

$number 等于 5 时,循环退出。

这是显示输出的屏幕截图,如果执行上述脚本,您也会得到相同的输出。

[玩转系统] PowerShell ForEach 循环 [带有示例]

3.在ForEach循环中使用Continue

continue 语句用于跳过当前迭代并移至集合中的下一项。当您想根据条件跳过某些项目时,这会很有用。

这是一个完整的 PowerShell 脚本。

$numbers = 1..5

ForEach ($number in $numbers) {
    if ($number -eq 3) {
        continue
    }
    Write-Output "Number: $number"
}

该脚本将输出:

Number: 1
Number: 2
Number: 4
Number: 5

数字 3 被跳过。

下面是截图供您参考:

[玩转系统] PowerShell ForEach 循环 [带有示例]

读取 PowerShell For 循环

PowerShell 中的嵌套 ForEach 循环

这是另一个先进的概念;让我通过示例向您展示如何在 PowerShell 中使用嵌套的 foreach 循环。

嵌套循环意味着将一个循环添加到另一个循环中。

嵌套 ForEach 循环用于迭代多个集合。下面是如何使用嵌套循环组合两个数组中的元素的示例。

$outerArray = 1..3
$innerArray = 'A','B','C'

ForEach ($outer in $outerArray) {
    ForEach ($inner in $innerArray) {
        Write-Output "$outer $inner"
    }
}

在此脚本中,外循环迭代数字 1 到 3,内循环迭代字母 A 到 C。对于每个组合,它都会输出数字和字母。

输出:

1 A
1 B
1 C
2 A
2 B
2 C
3 A
3 B
3 C

处理 PowerShell Foreach 循环中的错误

始终建议处理 PowerShell 脚本中的错误。那么,让我向您展示如何处理 PowerShell 中的 foreach 循环中的错误。

要处理这些错误,请在 foreach 循环中使用 Try-Catch 块。即使发生错误,这种方法也允许脚本继续运行。

例如:

foreach ($item in $collection) {
    try {
        # Your code here
    } catch {
        Write-Error "An error occurred: $_"
    }
}

让我们向您展示一个简单的数值数组并处理 Foreach 循环中的错误。例如,我们可以尝试将一个数字除以数组中的每个元素,并处理任何除以零的错误。

$numbers = @(10, 5, 0, 2)

# Number to be divided
$dividend = 100

# Loop through each number in the array
foreach ($number in $numbers) {
    try {
        # Attempt to divide the dividend by the current number
        $result = $dividend / $number
        Write-Output "100 divided by $number is $result"
    } catch {
        # Handle the error using ${} to delimit the variable name
        Write-Error "Error dividing 100 by ${number}: $($_.Exception.Message)"
    }
}
  1. 初始化:定义一个数值数组$numbers和一个被除数$dividend
  2. Foreach 循环foreach 循环迭代数组中的每个数字。
  3. Try 块:在 try 块内,脚本尝试将股息除以当前数字。如果数字为零,则会引发除零错误。
  4. Catch 块:如果发生错误(例如除以零),则执行 catch 块。使用Write-Error 记录错误。

当您使用 try-catch 块时,即使发生被零除错误,脚本也会继续处理数组中的剩余数字。

输出:

# 100 divided by 10 is 10
# 100 divided by 5 is 20
# Error dividing 100 by 0: Attempted to divide by zero.
# 100 divided by 2 is 50

此方法有助于在 PowerShell 中处理数值数组时处理脚本中的错误。

执行代码后的确切输出可以在下面的屏幕截图中看到:

[玩转系统] PowerShell ForEach 循环 [带有示例]

结论

PowerShell ForEach 循环对于迭代数组、列表等集合非常有用。

我希望您现在对使用 PowerShell foreach 循环与上述示例有一个完整的了解。我也解释过:

  • 如何在 foreach 循环中使用 break 和 continue 语句。
  • PowerShell 中的嵌套 foreach 循环
  • 如何在 foreach 循环中使用 try-catch

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯