powershell@foreach@foreach-object@continue的行为

这篇具有很好参考价值的文章主要介绍了powershell@foreach@foreach-object@continue的行为。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

powershell@foreach@foreach-object@continue的行为

ref

  • about Continue - PowerShell | Microsoft Learn
  • powershell - Why does ‘continue’ behave like ‘break’ in a Foreach-Object? - Stack Overflow

foreach@foreach-object

  • about Foreach - PowerShell | Microsoft Learn

    • powershell/module/microsoft.powershell.core/about/about_foreach
    • 这是一个powershell 遍历可迭代对象的基本语法,属于循环(loop)中的一种
    • 不妨称它为loop-foreach
  • ForEach-Object (Microsoft.PowerShell.Core) - PowerShell | Microsoft Learn

    • powershell/module/microsoft.powershell.core/foreach-object
    • 这是一个powershell cmdlet(powershell命令),不是一种循环,可能是基于基本语法编制而成的功能性命令
    • 不妨称它为cmdlet-foreach
  • 这一点区别将会在使用continue的时候显现出来

    • continue放在在某个Loop中时(比如foreach),那么它的行为就像c语言那样
    • 如果是放在foreach-object(有时候简写为foreach,区分loop-foreach),充当scriptblock
    • 这时候,会尝试跳过最近的loop语法层(如果存在的话)
  • What is a PowerShell command? - PowerShell | Microsoft Learn文章来源地址https://www.toymoban.com/news/detail-464068.html

What is a cmdlet?

  • Cmdlets are native PowerShell commands, not stand-alone executables.
  • Cmdlets are collected into PowerShell modules that can be loaded on demand.
  • Cmdlets can be written in any compiled .NET language or in the PowerShell scripting language itself.

break@continue

  • about Break - PowerShell | Microsoft Learn
  • about Continue - PowerShell | Microsoft Learn

案例

foreach@continue

loop-foreach
  • Write-Output 'foreach-loop'
    $l = 1..5
    foreach ($elem in $l)
    {
        if ($elem -eq 3)
        {
            continue;
            # not return here
        }
        Write-Output $elem
    }
    
cmdlet-foreach
  • Write-Output 'foreach-object(cmdlet)'
    1..5 | ForEach-Object {
        if ($_ -eq 3 )
        {
            return 
            #not continue here
        }
        Write-Output $_
    
    }
    
运行结果
  • foreach-loop
    1
    2
    4
    5
    foreach-object(cmdlet)
    1
    2
    4
    5
    

其他方案

  • 加一层if-else可以在cmdlet中模拟continue的字面行为
    • 但是这增加了不必要的代码
    • 而且不够优雅
  • 做过滤的时候where-object有时候比foreach-object更加合适

到了这里,关于powershell@foreach@foreach-object@continue的行为的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 报错forEach,其实是forEach之前的数据未获取到--TypeError: Cannot read properties of undefined (reading ‘forEach‘)

    跑了个js,测试时F12报错 报错如下: Uncaught TypeError: Cannot read properties of undefined (reading \\\'forEach\\\')     at 报错代码如下 forEach其实类似于for i in xxx中逐个取出数据,所以报错那可能性前面的box_geo1.faces未获取到数据而导致,因而加行代码验证下,console.log(\\\'faces信息\\\',box_geo1.faces); 于

    2024年02月13日
    浏览(44)
  • 详细分析Java中的list.foreach()和list.stream().foreach()

    典故来源于项目中使用了两种方式的foreach,后面尝试体验下有何区别! 先看代码示例: 使用List的forEach : 使用Stream API的forEach : 两者输出结果都为如下: 既然两个都输出差不多的结果,但两者还是稍微有些小区别,具体看下文! forEach() 是List接口的一部分,用于对列表中

    2024年04月25日
    浏览(46)
  • C#学习笔记--foreach循环是怎么遍历容器的?实战带你弄懂foreach原理

    上篇文章我们了解了 IEnumerable 和 IEnumerator C#学习笔记–由浅至深理解IEnumerable和IEnumerator 这篇文章我们来研究 foreach 循环 foreach 循环实际上是通过调用集合的 GetEnumerator 方法来获取一个枚举器,然后在每次迭代中调用枚举器的 MoveNext 方法来遍历集合的。当枚举器的 MoveNext 方

    2024年02月03日
    浏览(36)
  • PowerShell系列(三):PowerShell发展历程梳理

    目录 1、PowerShell 1.0 版本特性 2、PowerShell 2.0 版本特性 3、PowerShell 3.0 版本特性 4、PowerShell 4.0 版本特性 5、PowerShell 5.0 版本特性 6、PowerShell 5.1 版本特性 7、PowerShell6.0 Core 版本特性 8、PowerShell7.0 Core 版本特性 今天给大家聊聊PowerShell的发展历程,以及各个版本之间有什么亮

    2024年02月05日
    浏览(47)
  • PowerShell系列(九)PowerShell Cmdlet概念介绍

    往期回顾 PowerShell系列(一):PowerShell介绍和cmd命令行的区别 PowerShell系列(二):PowerShell和Python之间的差异介绍 PowerShell系列(三):PowerShell发展历程梳理 PowerShell系列(四):PowerShell进入交互环境的三种方式 PowerShell系列(五):PowerShell通过脚本方式运行笔记 PowerShell系

    2024年02月12日
    浏览(57)
  • Starting Windows PowerShell (启动 Windows PowerShell)

    Windows PowerShell is a scripting engine .DLL that’s embedded into multiple hosts. The most common hosts you’ll start are the interactive command-line powershell.exe and the Interactive Scripting Environment powershell_ise.exe . Windows PowerShell 是一个嵌入到多个主机中的脚本引擎 .DLL 。启动的最常见主机是交互式命令行 power

    2024年02月05日
    浏览(43)
  • PowerShell系列(七)PowerShell当中的Provider介绍

    往期回顾 PowerShell系列(一):PowerShell介绍和cmd命令行的区别 PowerShell系列(二):PowerShell和Python之间的差异介绍 PowerShell系列(三):PowerShell发展历程梳理 PowerShell系列(四):PowerShell进入交互环境的三种方式 PowerShell系列(五):PowerShell通过脚本方式运行笔记 PowerShell系

    2024年02月09日
    浏览(49)
  • PowerShell系列(五):PowerShell通过脚本方式运行笔记

    目录 一、四种执行方式介绍 1、当前文件夹运行命令 2、直接指定完整文件路径执行 3、通过cmd命令直接执行 4、通过Windows计划任务执行PowerShell脚本 二、通过脚本方式执行命令的优势 PowerShell系列(一):PowerShell介绍和cmd命令行的区别 PowerShell系列(二):PowerShell和Python之间

    2024年02月08日
    浏览(66)
  • Windows PowerShell基础教程(1)——Windows PowerShell 简介

    Windows PowerShell基础教程(1)——Windows PowerShell 简介             PowerShell 开发代号为Monad,  是支持 Windows XP/Server 2003/Vista/Server 2008操作系统的脚本语言。包括 Cmd.exe 、SH、KSH、CSH以及BASH Unix在内的大多数外壳程序的操作方式都是在新的进程中执行命令或实用工具程序,并以

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包