[玩转系统] PowerShell ForEach 循环 [带有示例]
作者:精品下载站 日期:2024-12-14 05:15:07 浏览:13 分类:玩电脑
PowerShell ForEach 循环 [带有示例]
要成为 PowerShell 专家,您应该知道如何使用 foreach 循环。我将详细解释 PowerShell foreach 循环中的嵌套 foreach 循环和错误处理。
PowerShell Foreach 循环遍历数组、cmdlet 或脚本文件。它通过处理集合中的每个项目来简化重复性任务。
现在,让我们了解它的语法和 foreach 循环的一些示例。
PowerShell 中的 ForeEch 循环是什么
PowerShell 中的 ForEach
循环用于迭代项目集合(例如数组或列表),并对每个项目执行操作。这个循环将帮助开发人员自动执行重复性任务。
例如,如果您有一个文件名列表,PowerShell Foreach 循环可以处理每个文件,对每个文件执行相同的操作。
ForEach 循环的语法
以下是 PowerShell foreach 循环的语法。
foreach ($item in $collection) {
# Perform actions with $item
}
这里,$collection是正在处理的数组或列表,$item表示每次迭代中的当前元素。大括号内的脚本块定义对每个元素执行的操作。
PowerShell foreach 循环示例
现在,让我们看一下在 PowerShell 中使用 foreach 循环的几个示例。
示例 1:循环遍历数组元素
现在,假设您有一个如下所示的 PowerShell 数组:
$numbers = @(1, 2, 3, 4, 5)
or
$numbers = 1..5
现在,您可以使用下面的 PowerShell 脚本来循环访问上面的数组。
foreach ($number in $numbers) {
Write-Output $number
}
这是完整的脚本。
$numbers = 1..5
foreach ($number in $numbers) {
Write-Output $number
}
在此脚本中,ForEach
循环遍历数组 $numbers
,其中包含数字 1 到 5。对于每个数字,它都会将数字输出到控制台。
我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:
阅读 PowerShell 中循环内的连接字符串
示例 2:使用 ForEach 循环循环文件夹中的文件
现在,让我向您展示一个示例,我们可以使用 PowerShell ForEach 循环遍历文件夹中的所有文件。
$items = Get-ChildItem -Path "C:\MyFolder"
ForEach ($item in $items) {
Write-Output $item.Name
}
这里,Get-ChildItem
cmdlet 检索 C:\MyFolder 目录中的所有项目并将它们存储在 $items
变量中。然后,ForEach
循环会迭代 $items
集合中的每个项目并输出每个项目的名称。
下面的屏幕截图显示,在我使用 VS code 执行脚本后,它显示了文件夹中的所有文件名。
示例 3:操作 ForEach 循环内的对象
在 foreach 循环内,可以使用各种技术来操作对象。例如,向对象添加属性或修改现有对象。
这是一个例子。
$processes = Get-Process
foreach ($process in $processes) {
$process | Add-Member -NotePropertyName "IsA" -NotePropertyValue ($process.Name -like "A*")
}
在 PowerShell 中读取 While 循环
PowerShell 中 Foreach 循环的控制流
让我向您展示 foreach 循环中的一些高级内容。例如,我将向您展示如何在PowerShell中的foreach循环中使用流程控制语句,例如条件语句、Break和Continue语句等。
1. 使用 If 语句实现条件
在 foreach
循环中使用 If 语句允许您仅在满足特定条件时运行特定代码。通过检查循环内的条件,您可以决定对每个项目执行哪些操作。例如:
foreach ($item in $items) {
if ($item -eq "target") {
Write-Output "Found the target!"
}
}
此循环检查 $item
是否等于“target”,然后输出一条消息。 If
语句提供了使用 elseif
和 else
包含多个条件的灵活性。
2. 在 ForEach 循环中使用 Break
break
语句用于提前退出 ForEach
循环。当满足特定条件并且您不再需要继续迭代其余项目时,这可能很有用。
以下是示例和完整的 PowerShell 脚本。
$numbers = 1..10
ForEach ($number in $numbers) {
if ($number -eq 5) {
break
}
Write-Output "Number: $number"
}
该脚本将输出:
Number: 1
Number: 2
Number: 3
Number: 4
当 $number
等于 5 时,循环退出。
这是显示输出的屏幕截图,如果执行上述脚本,您也会得到相同的输出。
3.在ForEach循环中使用Continue
continue
语句用于跳过当前迭代并移至集合中的下一项。当您想根据条件跳过某些项目时,这会很有用。
这是一个完整的 PowerShell 脚本。
$numbers = 1..5
ForEach ($number in $numbers) {
if ($number -eq 3) {
continue
}
Write-Output "Number: $number"
}
该脚本将输出:
Number: 1
Number: 2
Number: 4
Number: 5
数字 3 被跳过。
下面是截图供您参考:
读取 PowerShell For 循环
PowerShell 中的嵌套 ForEach 循环
这是另一个先进的概念;让我通过示例向您展示如何在 PowerShell 中使用嵌套的 foreach 循环。
嵌套循环意味着将一个循环添加到另一个循环中。
嵌套 ForEach
循环用于迭代多个集合。下面是如何使用嵌套循环组合两个数组中的元素的示例。
$outerArray = 1..3
$innerArray = 'A','B','C'
ForEach ($outer in $outerArray) {
ForEach ($inner in $innerArray) {
Write-Output "$outer $inner"
}
}
在此脚本中,外循环迭代数字 1 到 3,内循环迭代字母 A 到 C。对于每个组合,它都会输出数字和字母。
输出:
1 A
1 B
1 C
2 A
2 B
2 C
3 A
3 B
3 C
处理 PowerShell Foreach 循环中的错误
始终建议处理 PowerShell 脚本中的错误。那么,让我向您展示如何处理 PowerShell 中的 foreach 循环中的错误。
要处理这些错误,请在 foreach
循环中使用 Try-Catch 块。即使发生错误,这种方法也允许脚本继续运行。
例如:
foreach ($item in $collection) {
try {
# Your code here
} catch {
Write-Error "An error occurred: $_"
}
}
让我们向您展示一个简单的数值数组并处理 Foreach
循环中的错误。例如,我们可以尝试将一个数字除以数组中的每个元素,并处理任何除以零的错误。
$numbers = @(10, 5, 0, 2)
# Number to be divided
$dividend = 100
# Loop through each number in the array
foreach ($number in $numbers) {
try {
# Attempt to divide the dividend by the current number
$result = $dividend / $number
Write-Output "100 divided by $number is $result"
} catch {
# Handle the error using ${} to delimit the variable name
Write-Error "Error dividing 100 by ${number}: $($_.Exception.Message)"
}
}
- 初始化:定义一个数值数组
$numbers
和一个被除数$dividend
。 - Foreach 循环:
foreach
循环迭代数组中的每个数字。 - Try 块:在
try
块内,脚本尝试将股息除以当前数字。如果数字为零,则会引发除零错误。 - Catch 块:如果发生错误(例如除以零),则执行
catch
块。使用Write-Error
记录错误。
当您使用 try-catch 块时,即使发生被零除错误,脚本也会继续处理数组中的剩余数字。
输出:
# 100 divided by 10 is 10
# 100 divided by 5 is 20
# Error dividing 100 by 0: Attempted to divide by zero.
# 100 divided by 2 is 50
此方法有助于在 PowerShell 中处理数值数组时处理脚本中的错误。
执行代码后的确切输出可以在下面的屏幕截图中看到:
结论
PowerShell ForEach 循环对于迭代数组、列表等集合非常有用。
我希望您现在对使用 PowerShell foreach 循环与上述示例有一个完整的了解。我也解释过:
- 如何在 foreach 循环中使用 break 和 continue 语句。
- PowerShell 中的嵌套 foreach 循环
- 如何在 foreach 循环中使用 try-catch
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag