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

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

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

PowerShell For 循环 [带有示例]


最近,在处理 PowerShell 脚本时,我需要多次迭代一段代码。为此,我在 PowerShell 中使用了 for 循环。在本教程中,我将通过各种示例向您展示如何使用 PowerShell for 循环

PowerShell 中的 for 循环是什么?

PowerShell 中的 For 循环是一种控制流语句,允许您根据指定条件重复执行代码块。它由三个主要部分组成:初始化、条件和重复。

初始化步骤设置一个计数器变量,条件检查循环是否应该继续运行,重复步骤在每次迭代后更新计数器变量。

PowerShell For 循环的语法

以下是 PowerShell 中 For 循环的语法:

for (<Initialization>; <Condition>; <Repeat>)
{
    <Statement-Block>
}
  • 初始化 (init) 设置循环的起点。这是定义循环变量的地方,通常其值为零。
  • 每次循环运行时,increment 子句都会更新循环变量。例如,$i++ 将变量加一。
  • 条件检查循环是否应继续运行。如果条件为真,则循环运行;如果为假,则停止。一个例子是[i -lt 10]。这三个部分共同控制循环的执行。
  • 重复:这部分在每次迭代结束时执行。它通常用于递增或更新计数器变量。
  • 语句块:这是您希望在条件为 true 时重复执行的代码块。

阅读 PowerShell Do While 循环

PowerShell 中的基本 for 循环示例

让我们从一个简单的示例开始,使用 PowerShell for 循环打印从 1 到 5 的数字:

for ($i = 1; $i -le 5; $i++)
{
    Write-Output $i
}

在这个例子中:

  • 初始化$i=1 将计数器变量 $i 的初始值设置为 1。
  • 条件$i -le 5 检查$i是否小于或等于 5。
  • 重复:每次迭代后,$i++$i 的值增加 1。
  • 语句块写入输出 $i 打印 $i 的当前值。

您可以在下面的屏幕截图中看到输出:

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

这是另一个复杂的小示例,您希望迭代 PowerShell 数组并对每个元素执行一些操作。这是完整的 PowerShell 脚本。

$servers = @("Server1", "Server2", "Server3")

for ($i = 0; $i -lt $servers.Length; $i++)
{
    Write-Output "Pinging $($servers[$i])"
    Test-Connection -ComputerName $servers[$i] -Count 1
}

在这个例子中:

  • 初始化$i=0将计数器变量$i初始化为0。
  • 条件$i -lt $servers.Length 检查$i是否小于$servers 数组。
  • 重复:每次迭代后,$i++$i 的值增加 1。
  • 语句块:该块对阵列中的每个服务器执行 ping 操作。

在 PowerShell 中读取 While 循环

PowerShell 中的嵌套 For 循环

有时您可能需要将循环放入循环中,这在 PowerShell 中称为嵌套循环。以下是我们在 PowerShell 中使用嵌套 for 循环的示例。

for ($i = 0; $i -lt 3; $i++) {
    for ($j = 0; $j -lt 3; $j++) {
        Write-Output "$i, $j"
    }
}

每次外循环运行时,该嵌套循环都会运行内循环。这是输出:

0, 0
0, 1
0, 2
1, 0
1, 1
1, 2
2, 0
2, 1
2, 2

在执行上面的嵌套 for 循环 PowerShell 脚本后,请查看下面的屏幕截图,了解输出。

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

阅读 PowerShell Do-Until 循环示例

如何在PowerShell for循环中使用Break和Continue?

现在,让我向您展示如何在 PowerShell for 循环中使用 break 和 continue。

BreakContinue 语句使您可以控制循环执行。

  • break:立即退出for循环。
  • 继续:跳过当前迭代中的剩余语句并继续下一次迭代。

以下是如何在 PowerShell 的 for 循环中使用 break 语句的示例。

for ($i = 0; $i -lt 10; $i++) {
    if ($i -eq 5) { break }
    Write-Output $i
}

在此循环中,当 $i 等于 5 时停止。continue 语句跳过当前循环迭代的其余部分并继续下一次迭代。

以下是如何在 PowerShell for 循环中使用 continue 的示例。

for ($i = 0; $i -lt 10; $i++) {
    if ($i % 2 -eq 0) { continue }
    Write-Output $i
}

该循环跳过偶数,仅输出奇数。

在我使用 VS code 执行后,您可以在下面的屏幕截图中看到输出。

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

以下示例展示了如何在单个 PowerShell 脚本中使用break continue

for ($i = 1; $i -le 10; $i++)
{
    if ($i -eq 5)
    {
        continue  # Skip the rest of the loop when $i is 5
    }
    if ($i -eq 8)
    {
        break  # Exit the loop when $i is 8
    }
    Write-Output $i
}

在这个例子中:

  • 由于 continue 语句,循环会跳过打印数字 5。
  • $i 由于 break 语句而等于 8 时,循环终止。

阅读如何在 PowerShell 中循环遍历数组?

PowerShell for 循环尝试捕获

现在,让我向您展示如何使用 try catch 处理 PowerShell 中的 for 循环中的错误。

我们可以在 PowerShell 的 For 循环中使用 TryCatch 块来优雅地处理异常。当您想要确保即使在其中一次迭代期间发生错误时循环也能继续执行时,这特别有用。

句法

在 PowerShell 的 For 循环中使用 TryCatch 的语法如下所示:

for (<Initialization>; <Condition>; <Repeat>)
{
    try
    {
        # Code that may throw an exception
    }
    catch
    {
        # Code to handle the exception
    }
}

例子

现在,让我们看一个例子。

假设我们尝试将一个数字除以一系列值(包括零),这将引发异常。我们希望捕获这个异常并处理它而不停止整个循环。

这是完整的 PowerShell 脚本。

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

for ($i = 0; $i -lt $numbers.Length; $i++)
{
    try
    {
        $result = 100 / $numbers[$i]
        Write-Output "Result of 100 divided by $($numbers[$i]) is $result"
    }
    catch
    {
        Write-Output "Cannot divide by $($numbers[$i]). Error: $_"
    }
}

在这个例子中:

  • 初始化$i=0将计数器变量$i初始化为0。
  • 条件$i -lt $numbers.Length 确保只要 $i 小于 的长度,循环就会运行$numbers 数组。
  • 重复:每次迭代后,$i++ 将计数器变量 $i 加 1。

try 块中,我们尝试将 100 除以 $numbers 数组的当前元素。如果发生除数为零,则会引发异常,该异常会被 catch 块捕获。然后,catch 块会输出一条指示问题的错误消息。

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

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

结论

我希望您现在通过各种示例了解如何在 PowerShell 中使用 for 循环。我还向您展示了如何在 PowerShell for 循环中使用 break 和 continue 语句。最后,我们通过示例了解了如何在 PowerShell 的 for 循环中使用 try catch 语句。

如果您还有任何疑问,请随时在下面发表评论。

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

取消回复欢迎 发表评论:

关灯