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

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

作者:精品下载站 日期:2024-12-14 04:52:53 浏览:15 分类:玩电脑

PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?


[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

PowerShell ForEach 循环简介

了解PowerShell中的ForEach循环,ForEach和forLoop都执行相同的任务,它们都是为了重复操作和执行同一段代码。如果您正在读取数组的每个元素或者可能正在读取文件的每一行,在这种类型的条件下我们使用 foreach。 例如,一个包含用户的数组,我们想要检查名为“Vijay”的用户,因此我们需要检查每个元素,为此,我们需要一个“foreach”循环,一旦用户“Vijay”找到循环就会退出。如果您需要在执行操作之前查看每个用户的城市属性,您可以使用 ForEach 循环,您可以对每个城市执行相应的工作。与 for 循环相比,ForEach 节省的内存和时间很少。在 PowerShell 4.0 及更高版本中,ForEach 方法提供了更快的性能。

ForEach 循环的语法

下面是语法

foreach ($<item> in $<Actualarray>)
{
<statement 1>
<statement 2>
<statement 3>
<statement ...>
}

在上面的语法中,我们可以看到,每次都会从 Actualarray 中选取一项,并且该项将在 foreach 循环内进行处理。如果 $ 为空或者里面没有项目,则不会执行语句。当 Foreach 循环运行时,PowerShell 自动创建变量 $。例如,以下示例中的 Foreach 循环显示 $students 数组中的值。在for循环中,我们需要编写逻辑来检查数组是否为空,如果数组中有元素,则foreach循环执行语句块。

代码:

$students = ""
PS /home/ranjan> foreach ($student in $students)
{
Write-Host $student
}
output nothing, which means checking of array elements attributes are done internally by foreach loops.
$students = "ajay","vijay","ranjan","akash",”vikash”
foreach ($student in $students)
{
Write-Host $student
}

输出和代码屏幕:

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

PowerShell ForEach 循环的流程图

以下是 PowerShell ForEach 循环的流程图:

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

上述流程图的说明:上面的流程图非常清楚地表示了流程,一旦首先开始执行,它将检查数据(检查该元素是否在数组中),如果是空循环将停止。但如果 Data 存在,它将继续执行并执行语句 1、语句 2、语句 3,直到数组的最后一个数据。一旦数组变空,循环就会停止执行。

输出:

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

上述输出的解释:上面的屏幕显示,如果数组中有两个属性,它会打印两次,hello,但是如果我们将 $students 作为空数组,则不会打印 hello,这意味着以防万一任何属性在 $students 数组中都可用,而不是它将执行语句块,否则它不会执行。

ForEach 循环在 PowerShell 中如何工作?

假设我们有 4 个元素,并且我们想要将每个数字乘以 5。假设我们有 $a、$b、$c、$d,并且我们必须将每个乘以 5,那么我们将做什么,请看下面的示例:

示例代码:

$a=2 ,$b=4,$c=9,$d=5
$a * 5 =10,$b *  $5=20 ,$c * 5=45,$d*5=25

因此我们得到了结果。但这还好,直到我们只有 4 个元素与 5 相乘,假设有 10000 个元素需要与 5 相乘,那么为每个元素编写将是一项非常繁琐的任务。

那么有什么简单的解决方案呢?我们需要做的就是,我们应该创建一个包含所有元素的数组,并通过 foreach 传递该数组,并将每个元素乘以 5。要将数字 5 乘以数组中的每个元素,我们需要遍历该数组通过使用 ForEach 命令。

这是整个脚本:

代码:

$a = 2 ,$b = 4 ,$c = 9 ,$d =5
$f = $a,$b,$c,$d
Foreach ($i in $f)
{
$i * 5
}

输出:

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

上述代码说明:在上面的示例中我们可以看到,我们定义了另一个变量 $f 并将所有 4 个变量分配给它,这使其成为一个数组。最后,我们从 foreach 循环中传递它,得到的结果为 10,20,45,25。这样我们就可以让我们的生活变得更轻松,因为在现实生活中会有成千上万的记录需要修改,所以我们不能一一修改,所以我们使用 foreach 循环来处理这些。只需运行一次并修改任意数量的记录。

PowerShell ForEach 循环中的示例

以下是 PowerShell ForEach 循环中的示例:

例子#1

循环遍历包含学生姓名的字符串数组,并找到数组中每个字符串的长度。

代码:

$students = @("Ranjan","Ajay",”Vijay","Sujit","John","Rakesh",”Hari”)
foreach ($student in $students) {
"$student = " + $student.length
}

输出: Ranjan=6、Ajay=4、Vijay=5、Sujit=5、John=4、Rakesh=6、Hari=4。

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

例子#2

让我给你举一个现实生活中的例子,在考试中,你看到过去100分中有30分是及格分数。因此,假设有成千上万的学生,并且有一条规则,如果任何学生得到 27 分,则给他 30 分,这意味着只需在他的 27 分中额外添加 3 分。因此,我们循环遍历一系列学生分数,如果他们的分数是 27 分,则添加 3 分,并让他们通过考试,因为 30 分就是及格分数。

代码:

$marks =@(34,39,49,12,27,80,23,88,27)
foreach ($mark in $marks) {
if ($mark -eq 27) { $mark+3 } else{ $num}
}

输出: 有两名学生,但手动检查数十万名学生的 27 分是一项有点乏味的任务,我们解决了。

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

例子#3

另一个例子,查找 1 到 100 之间所有能被 10 整除的数字。

代码:

$numbers =@(1..100)
foreach ($number in $numbers)
{
if ( -not ($number % 10) )
{
"$number is totally divisible by 10"
}
}
10 is totally divisible by 10
20 is totally divisible by 10
30 is totally divisible by 10
40 is totally divisible by 10
50 is totally divisible by 10
60 is totally divisible by 10
70 is totally divisible by 10
80 is totally divisible by 10
90 is totally divisible by 10
100 is totally divisible by 10

输出:

[玩转系统] PowerShell ForEach 循环 | PowerShell ForEach 循环ForEach 循环在 PowerShell 中如何工作?

结论

总而言之,foreach 循环语句允许我们多次执行一条语句或一组语句,同时检查数组中的元素可用性,这意味着如果有任何元素,则运行下一条语句。 Foreach 循环仅在数组内存在任何元素时才运行,这使得它与 for 循环不同。

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

取消回复欢迎 发表评论:

关灯