PowerShell 基础:使用循环进行编程

Unlock business potential through effective first dataset management solutions.
Post Reply
roseline371274
Posts: 932
Joined: Mon Dec 23, 2024 7:00 am

PowerShell 基础:使用循环进行编程

Post by roseline371274 »

 

我们向您展示如何使用 For 循环、For Each-Object 循环以及 While 和 Do-While。
在本 PowerShell 教程中,我们将向您展示如何使用 For 循环、ForEach-Object 循环以及 While、Do-While 和 Do-Until 循环。

PowerShell 循环最基本的功能就是重复同一组命令一定次数。循环非常适合在一定时间段或一定数量的记录中执行一致的操作,可以大大简化您的脚本。特别是 PowerShell 具有许多 cmdlet(尤其是以动词 Get 开头的 cmdlet),它们返回包含大量相似数据的对象。



 
PowerShell 中有多种循环类型,在许多情况下,可以有效地使用多 哥斯达黎加whatsapp 数据 种循环技术。有时需要从性能或代码可读性的角度确定最有效的循环类型。

ForEach 对象循环


在许多情况下,使用ForEach-Object cmdlet(之前在我们关于使用 PowerShell 对象的文章中讨论过)是循环遍历对象的最佳方法。最简单的方法是,ForEach-Object 只需要一个要循环遍历的对象和一个包含要对该对象的每个成员执行的命令的脚本块。

这些参数可以通过-InputObject和-Process参数名称来指定,也可以通过将对象通过管道传输到 ForEach-Object cmdlet 并将脚本块作为第一个参数来指定。为了说明这个基本语法,以下示例显示了使用 ForEach-Object 循环遍历用户 Documents 文件夹内容的两种方法:

$myDocuments = Get-ChildItem $env:USERPROFILEDocuments -File
$myDocuments | ForEach-Object {$_.FullName}
ForEach-Object -InputObject $myDocuments -Process {$_.FullName}
在某些情况下,在执行循环之前或之后执行一个或多个操作可能会有所帮助。-Begin和-End参数可用于定义在 -Process 脚本块内容之前或之后执行的脚本块。这可用于在执行循环之前或之后设置或修改变量。

ForEach-Object 有两个别名,ForEach和%,并且从 PowerShell 3.0 开始还支持简写语法。以下三个示例在功能上完全相同。

获取 WMIObject Win32_LogicalDisk | ForEach-Object {$_.FreeSpace}
获取 WMIObject Win32_LogicalDisk | ForEach {$_.FreeSpace}
获取 WMIObject Win32_LogicalDisk | % FreeSpace
PowerShell For 循环


For 循环通常用于按指定次数迭代一组命令,要么遍历数组或对象,要么只是根据需要重复相同的代码块。For 循环的构造方法是在进入循环时设置变量的值、应终止循环的条件以及每次循环时要对该变量执行的操作。

下面的示例显示了用于创建乘法表的基本 For 循环:

对于 ($i=0; $i -le 10; $i++) {
    "10 * $i = " + (10 * $i)
    }
For 循环可用于逐个遍历数组值,方法是将初始值设置为数组的初始索引,然后逐步增加该值,直到达到数组长度。数组索引是通过将递增变量放在紧跟变量名称的方括号内来指定的,如以下示例所示:

$colors = @("红色","橙色","黄色","绿色","蓝色","靛蓝","紫色")
For ($i=0; $i -lt $colors.Length; $i++) {
    $colors[$i]
    }
While、Do-While 和 Do-Until 循环


PowerShell 支持的第三种循环类型涉及设置条件,只要条件为真或直到条件满足,循环就会继续处理。While和Do-While循环都用于在条件计算为$true时执行操作,并且仅在语法上有所不同。Do -Until循环的语法与 Do-While 相似,但一旦满足条件语句就会停止处理。
Post Reply