如何理解powershell中的foreach循环

use*_*612 2 powershell

大家好,我是 power shell 的新手,并试图理解每个循环,但我不明白 + $ 在下面的脚本中是什么意思以及为什么它们一起使用

$names = "jones","mike","Ash"
foreach ($name in $names)
{
    "$name = " + $name.length
}
Run Code Online (Sandbox Code Playgroud)

rav*_*nth 5

首先,它是PowerShell。没有空格并注意字母的大小写。

二、RTFM。Technet 上有很多文档。利用那个。有内置帮助。阅读Help about_*主题。

谈到您的问题,foreach循环遍历所有集合。在您的示例中,$names是一个字符串数组。数组是一个集合。

在您的示例中,当foreach循环遍历集合时,它将集合中的每个项目复制到另一个名为$name.

foreach ($name in $names) {}
Run Code Online (Sandbox Code Playgroud)

foreach循环内部,您可以使用$name变量来检索存储在项目中的值。因此,以下代码将打印集合中的值。

foreach ($name in $names) {
    $name
}
Run Code Online (Sandbox Code Playgroud)

$name是一个字符串。所以,$name.Length给我们那个字符串的长度。

+是算术运算符。它可用于连接字符串。在这种情况下,$name + $name.length将导致值附加到长度。

这是带有输出的修改后的示例:

$names = "jones","mike","Ash"
foreach ($name in $names)
{
    $name + $name.Length
}

jones5
mike4
Ash3
Run Code Online (Sandbox Code Playgroud)

最后,来到你的例子和输出:

$names = "jones","mike","Ash"
foreach ($name in $names)
{
    "$name = " + $name.Length
}

jones = 5
mike = 4
Ash = 3
Run Code Online (Sandbox Code Playgroud)

我希望这为您提供了一些关于示例正在做什么的解释。