[玩转系统] PowerShell ForEach-对象与 ForEach
作者:精品下载站 日期:2024-12-14 05:15:49 浏览:15 分类:玩电脑
PowerShell ForEach-对象与 ForEach
今天,我想分享 PowerShell 中循环中使用的两个重要的东西:ForEach-Object 和 ForEach。我会告诉你这两者之间的区别。
让我们探讨一下 PowerShell ForEach-Object 与 ForEach。
PowerShell 中的 ForEach
PowerShell 中的 ForEach 关键字用于迭代项目集合。它是一个控制流语句,允许您为集合(例如数组或列表)中的每个项目执行代码块。
句法
这是 ForEach 的语法。
foreach ($item in $collection) {
# Code to execute for each item
}
例子
以下是如何在 PowerShell 中使用 foreach 的简单示例。
$numbers = 1..5
foreach ($number in $numbers) {
Write-Output $number
}
在此示例中,foreach
循环迭代从 1 到 5 的数字并输出每个数字。
此外,您还可以在下面的屏幕截图中看到输出:
特征
以下是您应该了解为什么应该使用 ForEach 循环的一些特征。
- 内存使用情况:
ForEach
循环在处理之前将整个集合加载到内存中。这对于小型集合来说非常有效,但可能会导致大型数据集出现内存问题。 - 性能:对于中小型集合来说,通常速度更快,因为它在内存中处理项目。
- 可读性:ForEach 循环易于阅读,使其成为简单迭代的不错选择。
阅读 PowerShell:Where-Object 与 Select-Object
PowerShell 中的 ForEach 对象
ForEach-Object 是 PowerShell 中的一个 cmdlet,用于处理管道中传入的对象。它与管道配合使用,处理大型数据集更加高效。
句法
以下是 PowerShell 中 ForEach-Object 的语法:
$collection | ForEach-Object {
# Code to execute for each item
}
例子
以下是如何在 PowerShell 中使用 ForEach-Object 的简单示例。
1..5 | ForEach-Object {
Write-Output $_
}
在此示例中,ForEach-Object
cmdlet 会在管道中处理从 1 到 5 的每个数字并输出每个数字。
我执行了上面的代码,您可以在下面的屏幕截图中看到输出:
特征
查看以下特征,了解为什么应在 PowerShell 中使用 ForEach-Object。
- 内存使用:ForEach-Object 一次处理一项,这使得大型数据集的内存效率更高。
- 性能:由于管道开销,与中小型集合的 ForEach 相比可能会更慢,但对于大型数据集它可以更好地扩展。
- 管道集成:ForEach-Object 旨在与 PowerShell 管道无缝协作,非常适合处理流数据或无法放入内存的大型集合。
读取 PowerShellWhere 对象
ForEach 和 ForEach-Object 之间的主要区别
1. 内存使用情况
ForEach
和 ForEach-Object
之间的主要区别之一是它们处理内存的方式。
ForEach 在处理之前会将整个集合加载到内存中,这可能会导致大型数据集消耗大量内存。
相比之下,ForEach-Object
会处理管道中的每个项目,从而提高内存效率。
2. 性能
ForEach
和 ForEach-Object
的性能可能会因数据集的大小而异。
对于中小型集合,ForEach 通常速度更快,因为它处理内存中的项目。
但是,对于大型数据集,ForEach-Object
可能更高效,因为它避免了将整个集合加载到内存中的开销。
3. 使用案例
- ForEach:最适合不关心内存使用的中小型集合。由于其可读性,它也是简单迭代的首选。
- ForEach-Object:非常适合大型数据集、流数据或内存效率至关重要的场景。在使用 PowerShell 管道时它也很有用。
ForEach-Object 与 ForEach 示例
让我向您展示 PowerShell ForEach-Object 和 ForEach 的几个示例。
示例 1:处理小型集合
让我首先向您展示如何在 PowerShell 中使用两者来处理小型集合。
使用 ForEach
$names = @('Alice', 'Bob', 'Charlie')
foreach ($name in $names) {
Write-Output "Hello, $name!"
}
使用 ForEach 对象
$names = @('Alice', 'Bob', 'Charlie')
$names | ForEach-Object {
Write-Output "Hello, $_!"
}
在此示例中,ForEach
和 ForEach-Object
实现相同的结果。不过,对于这个小型集合来说,ForEach
更具可读性并且速度稍快。
示例 2:处理大型集合
让我向您展示如何在 PowerShell 中使用 ForEach 和 ForEach-Object 处理大型集合。
使用 ForEach
$largeCollection = 1..1000000
foreach ($item in $largeCollection) {
# Process each item
}
使用 ForEach 对象
1..1000000 | ForEach-Object {
# Process each item
}
对于大型集合,ForEach-Object
内存效率更高,因为它会在管道中处理每个项目,从而避免将整个集合加载到内存中。
示例 3:使用管道
以下是如何使用 PowerShell ForEach 和 ForEach-Object 来使用管道的示例。
使用 ForEach
Get-Process | ForEach {
Write-Output $_.Name
}
使用 ForEach 对象
Get-Process | ForEach-Object {
Write-Output $_.Name
}
使用管道时,ForEach-Object
是自然的选择,因为它旨在处理通过管道流式传输的对象。
使用 PowerShellWhere-Object Cmdlet 读取筛选器空值
PowerShell ForEach-Object 与 ForEach - 总结
为了总结 ForEach
和 ForEach-Object
的差异和用例,下面是一个比较表:
结论
我希望您知道 PowerShell ForEach-Object 与 ForEach 之间的区别。您可以将 ForEach 用于中小型集合,其中内存不是问题,可读性很重要。处理大型数据集或需要使用 PowerShell 管道时,请选择 ForEach-Object
。
还有问题要问我吗?请在下面发表评论。
猜你还喜欢
- 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