Powershell ForEach循环语句教程及示例

ForEach 是一个PowerShell语句,用于对给定的对象、字符串、数字等的列表、数组或集合进行迭代或循环。ForEach是一种非常流行的循环机制,我们可以在其中使用loop等不同的情况 通过文件、数字、字符串、进程等。Powershell 4.0版为 ForEach 循环。

null

PowerShell ForEach语法

Foreach语句的语法如下 ITEM , COLLECTION CODE-BLOCK .

ForEach(ITEM in COLLECTION){   CODE BLOCK}
  • ITEM是一个值或对象,在每次迭代中都会发生变化。
  • 集合是数组、集合、值列表或1、2、3、4等对象。
  • 代码块是实际操作运行的块,通常使用ITEM。 此块可以是一行或多行。

通过字符串数组Foreach

通过一种简单的方法,我们可以迭代给定的字符串数组列表。我们遍历名为“cities”的数组,该数组包含多个城市 名字。我们将用下面的“echo”命令打印每个城市的名字。

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
ForeachThrough An Array Of Strings
通过字符串数组进行foreachforeachforeachforeachforeachforeachforeachforeachforeachforeachfora

我们可以看到,每一个城市的名字都被打印到powershell终端的一行中。

通过一系列数字

在上一个示例中,我们循环了给定的字符串列表。我们也可以迭代或循环一系列的数字。我们将创建一个名为 numbers 迭代这个数字数组中的每一项。

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach Through An Collection Of Numbers
通过一系列数字

$使用

当使用一些cmdlet将cmdlet的输出重定向到Foreach时,我们可以对每个项或对象使用“$”。例如,如果使用“Get Process”cmdlet,则每个项或进程都将分配给 $ 在每次迭代中。我们可以指定像Name这样的属性 $.Name 打印如下。

PS> Get-Process | ForEach-Object {$_.ProcessName}
$_ Usage
$使用

我们也可以在foreach中通过逗号分隔多个属性来打印它们。

PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
$_ Usage
$使用

浏览文件

我们还可以使用 Get-ChildItem cmdlet。 Get-ChildItem 将列出文件和文件夹,如 dir MSDOS命令。此输出将用 Echo 命令。

foreach($file in Get-ChildItem) {Echo $file}
Foreach Through Files
浏览文件

Foreach通过特定的文件扩展名,比如Bat

我们可以具体列出指定的扩展名。扩展名通常提供文本、avi、mkv、mp3、doc等文件类型。在本例中,我们只列出 *.bat 或Bat文件。

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach Through Specific File Extensions Like Bat
Foreach通过特定的文件扩展名,比如Bat

我们可以看到只有 test.bat autoexec.bat 将被列出。

相关文章: 如何传递和解析Linux Bash脚本参数

Foreach Over CSV文件

CSV文件用于以结构化方式存储文本数据。我们可以很容易地foreach在CSV文件的每一行,如下所示。在这个例子中,我们将读取一个IP地址 CSV文件并提供给 foreach 打印Powershell控制台。

$IPs = (Get-Content IP.csv)[0].split(",")foreach ( $IP in $IPs){    echo $IP}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享