• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >PowerShell > PowerShell实现统计函数嵌套深度

PowerShell实现统计函数嵌套深度

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了powershell 函数,powershell,windows powershell,powershell是什么,powershell下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

当你调用某个函数时,PowerShell会增加一次嵌套层次。当一个函数调用了另一个函数,或着脚本,也会增加嵌套层次。今天分享一个函数,它能告诉你的脚本嵌套的层次:

function Test-NestLevel
{
$i = 1
$ok = $true
do
{
try
{
$test = Get-Variable -Name Host -Scope $i
}
catch
{
$ok = $false
}
$i++
} While ($ok)
 
$i
}

</div>

当你调用的函数具有递归调用时,上面的函数非常有用,来看一个调用的示例:

function Test-Diving
{
param($Depth)
 
if ($Depth -gt 10) { return }
 
"Diving deeper to $Depth meters..."
 
$currentDepth = Test-NestLevel
"calculated depth: $currentDepth"
 
Test-Diving -depth ($Depth+1)
}
 
Test-Diving -depth 1
 
</div>


当你运行Test-Diving时,函数会调用自己10次。函数使用一个参数来控制嵌套层次,而Test-NestLevel负责返回确切的深度数。

注意这里有个区别:Test-NestLevel返回绝对的嵌套层次,参数会纪录这个函数调用自己多少次。如果Test-Diving被嵌入到另外一个函数中,绝对深度和相对深度会不同。

 

PS C:\> Test-Diving -Depth 1
diving deeper to 1 meters...
calculated depth: 1
diving deeper to 2 meters...
calculated depth: 2
diving deeper to 3 meters...
calculated depth: 3
diving deeper to 4 meters...
calculated depth: 4
diving deeper to 5 meters...
calculated depth: 5
diving deeper to 6 meters...
calculated depth: 6
diving deeper to 7 meters...
calculated depth: 7
diving deeper to 8 meters...
calculated depth: 8
diving deeper to 9 meters...
calculated depth: 9
diving deeper to 10 meters...
calculated depth: 10
 
PS C:\> & { Test-Diving -Depth 1 }
diving deeper to 1 meters...
calculated depth: 2
diving deeper to 2 meters...
calculated depth: 3
diving deeper to 3 meters...
calculated depth: 4
diving deeper to 4 meters...
calculated depth: 5
diving deeper to 5 meters...
calculated depth: 6
diving deeper to 6 meters...
calculated depth: 7
diving deeper to 7 meters...
calculated depth: 8
diving deeper to 8 meters...
calculated depth: 9
diving deeper to 9 meters...
calculated depth: 10
diving deeper to 10 meters...
calculated depth: 11
 
PS C:\>
</div>


Test-NestLevel总会返回从当前代码的作用域到全局作用域的嵌套深度。

</div>

您可能想查找下面的文章:

  • PowerShell中的函数重载示例
  • PowerShell实现统计函数嵌套深度
  • PowerShell小技巧之从函数中返回多个值
  • PowerShell函数简明教程
  • PowerShell中prompt函数的妙用
  • PowerShell中对函数参数的命名建议
  • PowerShell定义函数参数的2种方法和传参方法实例
  • PowerShell函数参数指定数据类型实例
  • PowerShell中给函数参数设置帮助信息的例子
  • PowerShell函数中使用必选参数实例

相关文章

  • PowerShell设置文件只读、隐藏属性的方法
  • PowerShell中的函数重载示例
  • Windows Powershell排序和分组管道结果
  • Windows Powershell Foreach 循环
  • PowerShell中使用Get-Date获取日期时间并格式化输出的例子
  • Powershell小技巧之捕获脚本内部的异常
  • PowerShell正则表达式(Regex)从右往左进行匹配方法代码实例
  • Powershell小技巧之系统运行时间
  • 探索PowerShell(五) PowerShell基础知识
  • PowerShell中使用replace操作符替换字符串实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Powershell Profiles配置文件的存放位置介绍
    • Powershell小技巧之系统运行时间
    • PowerShell入门教程之创建和使用配置文件实例
    • Windows Powershell IF-ELSEIF-ELSE 语句
    • PowerShell隐藏不显示窗口的多种方法
    • Powershell实现加密解密文本文件方法实例
    • PowerShell把IP地址转换成二进制的方法
    • Powershell实现获取电脑序列号功能脚本分享
    • PowerShell把文件删除到回收站的方法
    • PowerShell函数参数用星号隐藏的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有